mirror of
https://github.com/HDFGroup/hdf5.git
synced 2024-11-27 02:10:55 +08:00
427ff7da28
Bug Fix/Code Cleanup/Doc Cleanup/Optimization/Branch Sync :-) Description: Generally speaking, this is the "signed->unsigned" change to selections. However, in the process of merging code back, things got stickier and stickier until I ended up doing a big "sync the two branches up" operation. So... I brought back all the "infrastructure" fixes from the development branch to the release branch (which I think were actually making some improvement in performance) as well as fixed several bugs which had been fixed in one branch, but not the other. I've also tagged the repository before making this checkin with the label "before_signed_unsigned_changes". Platforms tested: FreeBSD 4.10 (sleipnir) w/parallel & fphdf5 FreeBSD 4.10 (sleipnir) w/threadsafe FreeBSD 4.10 (sleipnir) w/backward compatibility Solaris 2.7 (arabica) w/"purify options" Solaris 2.8 (sol) w/FORTRAN & C++ AIX 5.x (copper) w/parallel & FORTRAN IRIX64 6.5 (modi4) w/FORTRAN Linux 2.4 (heping) w/FORTRAN & C++ Misc. update:
641 lines
23 KiB
HTML
641 lines
23 KiB
HTML
<html>
|
|
<head><title>
|
|
HDF5/H5 API Specification
|
|
</title>
|
|
|
|
<!-- #BeginLibraryItem "/ed_libs/styles_RM.lbi" -->
|
|
|
|
<!--
|
|
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
|
|
* Copyright by the Board of Trustees of the University of Illinois. *
|
|
* All rights reserved. *
|
|
* *
|
|
* This file is part of HDF5. The full HDF5 copyright notice, including *
|
|
* terms governing use, modification, and redistribution, is contained in *
|
|
* the files COPYING and Copyright.html. COPYING can be found at the root *
|
|
* of the source code distribution tree; Copyright.html can be found at the *
|
|
* root level of an installed copy of the electronic HDF5 document set and *
|
|
* is linked from the top-level documents page. It can also be found at *
|
|
* http://hdf.ncsa.uiuc.edu/HDF5/doc/Copyright.html. If you do not have *
|
|
* access to either file, you may request a copy from hdfhelp@ncsa.uiuc.edu. *
|
|
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
|
|
-->
|
|
|
|
<link href="ed_styles/RMelect.css" rel="stylesheet" type="text/css">
|
|
<!-- #EndLibraryItem --></head> <body bgcolor="#FFFFFF">
|
|
|
|
<!-- #BeginLibraryItem "/ed_libs/NavBar_RM.lbi" --><hr>
|
|
<center>
|
|
<table border=0 width=98%>
|
|
<tr><td valign=top align=left>
|
|
<a href="index.html">HDF5 documents and links</a> <br>
|
|
<a href="H5.intro.html">Introduction to HDF5</a> <br>
|
|
<a href="http://hdf.ncsa.uiuc.edu/HDF5/doc/UG/index.html">HDF5 User Guide</a> <br>
|
|
<!--
|
|
<a href="Glossary.html">Glossary</a><br>
|
|
-->
|
|
</td>
|
|
<td valign=top align=right>
|
|
And in this document, the
|
|
<a href="RM_H5Front.html">HDF5 Reference Manual</a>
|
|
<br>
|
|
<a href="RM_H5.html">H5</a>
|
|
<a href="RM_H5A.html">H5A</a>
|
|
<a href="RM_H5D.html">H5D</a>
|
|
<a href="RM_H5E.html">H5E</a>
|
|
<a href="RM_H5F.html">H5F</a>
|
|
<a href="RM_H5G.html">H5G</a>
|
|
<a href="RM_H5I.html">H5I</a>
|
|
<a href="RM_H5P.html">H5P</a>
|
|
<br>
|
|
<a href="RM_H5R.html">H5R</a>
|
|
<a href="RM_H5S.html">H5S</a>
|
|
<a href="RM_H5T.html">H5T</a>
|
|
<a href="RM_H5Z.html">H5Z</a>
|
|
<a href="Tools.html">Tools</a>
|
|
<a href="PredefDTypes.html">Datatypes</a>
|
|
</td></tr>
|
|
</table>
|
|
</center>
|
|
<hr><!-- #EndLibraryItem --><center>
|
|
<h1>H5: General Library Functions</h1>
|
|
</center>
|
|
|
|
These functions serve general-purpose needs of the HDF5 library
|
|
and it users.
|
|
|
|
<p>
|
|
<strong>The C Interfaces:</strong>
|
|
|
|
<table border=0>
|
|
<tr><td valign=top>
|
|
<ul>
|
|
<li><a href="#Library-Open">H5open</a>
|
|
<li><a href="#Library-Close">H5close</a>
|
|
</ul>
|
|
</td><td> </td><td valign=top>
|
|
<ul>
|
|
<li><a href="#Library-Version">H5get_libversion</a>
|
|
<li><a href="#Library-VersCheck">H5check_version</a>
|
|
</ul>
|
|
</td><td> </td><td valign=top>
|
|
<ul>
|
|
<li><a href="#Library-SetFreeListLimits">H5set_free_list_limits</a>
|
|
<li><a href="#Library-GarbageCollect">H5garbage_collect</a>
|
|
<li><a href="#Library-DontAtExit">H5dont_atexit</a>
|
|
</ul>
|
|
</td></tr>
|
|
</table>
|
|
<br>
|
|
|
|
<i>Alphabetical Listing</i>
|
|
|
|
<table border="0">
|
|
<tr>
|
|
|
|
<td valign="top">
|
|
<ul>
|
|
<li><a href="#Library-VersCheck">H5check_version</a>
|
|
<li><a href="#Library-Close">H5close</a>
|
|
<li><a href="#Library-DontAtExit">H5dont_atexit</a>
|
|
</ul>
|
|
</td>
|
|
|
|
<td> </td>
|
|
|
|
<td valign="top">
|
|
<ul>
|
|
<li><a href="#Library-GarbageCollect">H5garbage_collect</a>
|
|
<li><a href="#Library-Version">H5get_libversion</a>
|
|
<li><a href="#Library-Open">H5open</a>
|
|
</ul>
|
|
</td>
|
|
|
|
<td> </td>
|
|
|
|
<td valign="top">
|
|
<ul>
|
|
<li><a href="#Library-SetFreeListLimits">H5set_free_list_limits</a>
|
|
</ul>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
|
|
<br>
|
|
<strong>The FORTRAN90 Interfaces:</strong>
|
|
<br>
|
|
In general, each FORTRAN90 subroutine performs exactly the same task
|
|
as the corresponding C function.
|
|
<br>
|
|
|
|
<table border=0>
|
|
<tr><td valign=top>
|
|
<ul>
|
|
<li><a href="#Library-Open">h5open_f</a>
|
|
<li><a href="#Library-Close">h5close_f</a>
|
|
</ul>
|
|
</td><td> </td><td valign=top>
|
|
<ul>
|
|
<li><a href="#Library-Version">h5get_libversion_f</a>
|
|
<li><a href="#Library-VersCheck">h5check_version_f</a>
|
|
</ul>
|
|
</td><td> </td><td valign=top>
|
|
<ul>
|
|
<li><a href="#Library-SetFreeListLimits">h5set_free_list_limits_f</a>
|
|
<li><a href="#Library-GarbageCollect">h5garbage_collect_f</a>
|
|
<li><a href="#Library-DontAtExit">h5dont_atexit_f</a>
|
|
</ul>
|
|
</td></tr>
|
|
</table>
|
|
|
|
<!-- NEW PAGE -->
|
|
<!-- HEADER RIGHT " " -->
|
|
<!-- NEW PAGE -->
|
|
<!-- HEADER RIGHT "H5check_version" -->
|
|
<hr>
|
|
<dl>
|
|
<dt><strong>Name:</strong> <a name="Library-VersCheck">H5check_version</a>
|
|
<dt><strong>Signature:</strong>
|
|
<dd><em>herr_t</em> <code>H5check_version</code>(<em>unsigned</em> <code>majnum</code>,
|
|
<em>unsigned</em> <code>minnum</code>,
|
|
<em>unsigned</em> <code>relnum</code>
|
|
)
|
|
<dt><strong>Purpose:</strong>
|
|
<dd>Verifies that library versions are consistent.
|
|
<dt><strong>Description:</strong>
|
|
<dd><code>H5check_version</code> verifies that the arguments provided
|
|
with the function call match the version numbers compiled into
|
|
the library.
|
|
<p>
|
|
<code>H5check_version</code> serves two slightly differing purposes.
|
|
<p>
|
|
First, the function is intended to be called by the user to verify
|
|
that the version of the header files compiled into an application
|
|
matches the version of the HDF5 library being used.
|
|
One may look at the <code>H5check</code> definition in the file
|
|
<code>H5public.h</code> as an example.
|
|
<p>
|
|
Due to the risks of data corruption or segmentation faults,
|
|
<code>H5check_version</code> causes the application to abort if the
|
|
version numbers do not match.
|
|
The abort is achieved by means of a call to the
|
|
standard C function <code>abort()</code>.
|
|
<p>
|
|
Note that <code>H5check_version</code> verifies only the
|
|
major and minor version numbers and the release number;
|
|
it does not verify the sub-release value as that should be
|
|
an empty string for any official release.
|
|
This means that any two incompatible library versions must
|
|
have different {major,minor,release} numbers. (Notice the
|
|
reverse is not necessarily true.)
|
|
<p>
|
|
Secondarily, <code>H5check_version</code> verifies that the
|
|
library version identifiers <code>H5_VERS_MAJOR</code>,
|
|
<code>H5_VERS_MINOR</code>, <code>H5_VERS_RELEASE</code>,
|
|
<code>H5_VERS_SUBRELEASE</code>, and <code>H5_VERS_INFO</code>
|
|
are consistent.
|
|
This is designed to catch source code inconsistencies,
|
|
but does not generate the fatal error as in the first stage
|
|
because this inconsistency does not cause errors in the data files.
|
|
If this check reveals inconsistencies, the library issues a warning
|
|
but the function does not fail.
|
|
<!--
|
|
<p>
|
|
<strong><em>Alternate to preceding paragraph / More to the point?</em></strong>
|
|
<br>
|
|
If the function passes the above test and does not generate
|
|
an <code>abort()</code> call, the function's second purpose
|
|
comes into play.
|
|
<code>H5check_version</code> then procedes to verify
|
|
that the additional library version identifiers
|
|
<code>H5_VERS_SUBRELEASE</code>, and <code>H5_VERS_INFO</code>
|
|
are consistent.
|
|
This is designed to catch source code inconsistencies,
|
|
but does not generate the fatal error
|
|
that is generated under the first function.
|
|
<p>
|
|
The version and release numbers passed as
|
|
<code>H5check_version</code> parameters have the
|
|
following relationsips to each other:
|
|
<dir>
|
|
An official HDF5 release is labelled as
|
|
<br>
|
|
HDF5 Release <<code>majnum</code>><strong>.</strong><<code>minnum</code>><strong>.</strong><<code>relnum</code>>
|
|
</dir>
|
|
For example, in the version of the library known as HDF5 Release 1.4.2,
|
|
the 1 is the major version number, <code>majnum</code>;
|
|
the 1 is the minor version number, <code>minnum</code>; and
|
|
the 1 is the release number, <code>relnum</code>.
|
|
-->
|
|
<dt><strong>Parameters:</strong>
|
|
<ul><table>
|
|
<tr>
|
|
<td valign="top"><em>unsigned </em><code>majnum</code></td>
|
|
<td valign="top">IN: The major version of the library.</td></tr>
|
|
<tr>
|
|
<td valign="top"><em>unsigned </em><code>minnum </code></td>
|
|
<td valign="top">IN: The minor version of the library.</td></tr>
|
|
<tr>
|
|
<td valign="top"><em>unsigned </em><code>relnum</code></td>
|
|
<td valign="top">IN: The release number of the library.</td></tr>
|
|
</table></ul>
|
|
<dt><strong>Returns:</strong>
|
|
<dd>Returns a non-negative value if successful.
|
|
Upon failure, this function causes the application to abort.
|
|
<dt><strong>Fortran90 Interface:</strong> h5check_version_f
|
|
<dd>
|
|
<pre>
|
|
SUBROUTINE h5check_version_f(hdferr)
|
|
IMPLICIT NONE
|
|
INTEGER, INTENT(IN) :: majnum ! The major version of the library
|
|
INTEGER, INTENT(IN) :: minnum ! The minor version of the library
|
|
INTEGER, INTENT(IN) :: relnum ! The release number
|
|
INTEGER, INTENT(OUT) :: hdferr ! Error code
|
|
|
|
END SUBROUTINE h5check_version_f
|
|
</pre>
|
|
|
|
<!--<dt><strong>Non-C API(s):</strong>
|
|
<dd>
|
|
|
|
<img src="Graphics/Java.gif">
|
|
<img src="Graphics/C++.gif">
|
|
-->
|
|
</dl>
|
|
|
|
<!-- NEW PAGE -->
|
|
<!-- HEADER RIGHT "H5close" -->
|
|
<hr>
|
|
<dl>
|
|
<dt><strong>Name:</strong> <a name="Library-Close">H5close</a>
|
|
<dt><strong>Signature:</strong>
|
|
<dd><em>herr_t</em> <code>H5close</code>(<em>void</em>)
|
|
<dt><strong>Purpose:</strong>
|
|
<dd>Flushes all data to disk, closes file identifiers, and cleans up memory.
|
|
<dt><strong>Description:</strong>
|
|
<dd><code>H5close</code> flushes all data to disk,
|
|
closes all file identifiers, and cleans up all memory used by
|
|
the library. This function is generally called when the
|
|
application calls <code>exit()</code>, but may be called earlier
|
|
in event of an emergency shutdown or out of desire to free all
|
|
resources used by the HDF5 library.
|
|
<p>
|
|
<code>h5close_f</code> and <code>h5open_f</code> are
|
|
required calls in Fortran90 applications.
|
|
<dt><strong>Parameters:</strong>
|
|
<dl>
|
|
<dt>None.
|
|
</dl>
|
|
<dt><strong>Returns:</strong>
|
|
<dd>Returns a non-negative value if successful;
|
|
otherwise returns a negative value.
|
|
<dt><strong>Fortran90 Interface:</strong> h5close_f
|
|
<dd>
|
|
<pre>
|
|
SUBROUTINE h5close_f(hdferr)
|
|
IMPLICIT NONE
|
|
INTEGER, INTENT(OUT) :: hdferr ! Error code
|
|
|
|
END SUBROUTINE h5close_f
|
|
</pre>
|
|
|
|
<!--<dt><strong>Non-C API(s):</strong>
|
|
<dd>
|
|
|
|
<img src="Graphics/Java.gif">
|
|
<img src="Graphics/C++.gif">
|
|
-->
|
|
</dl>
|
|
|
|
<!-- NEW PAGE -->
|
|
<!-- HEADER RIGHT "H5H5dont_atexit" -->
|
|
<hr>
|
|
<dl>
|
|
<dt><strong>Name:</strong> <a name="Library-DontAtExit">H5dont_atexit</a>
|
|
<dt><strong>Signature:</strong>
|
|
<dd><em>herr_t</em> <code>H5dont_atexit</code>(<em>void</em>)
|
|
<dt><strong>Purpose:</strong>
|
|
<dd>Instructs library not to install <code>atexit</code> cleanup routine.
|
|
<dt><strong>Description:</strong>
|
|
<dd><code>H5dont_atexit</code> indicates to the library that an
|
|
<code>atexit()</code> cleanup routine should not be installed.
|
|
The major purpose for this is in situations where the
|
|
library is dynamically linked into an application and is
|
|
un-linked from the application before <code>exit()</code> gets
|
|
called. In those situations, a routine installed with
|
|
<code>atexit()</code> would jump to a routine which was
|
|
no longer in memory, causing errors.
|
|
<p>
|
|
In order to be effective, this routine <em>must</em> be called
|
|
before any other HDF function calls, and must be called each
|
|
time the library is loaded/linked into the application
|
|
(the first time and after it's been un-loaded).
|
|
<dt><strong>Parameters:</strong>
|
|
<dl>
|
|
<dt>None.
|
|
</dl>
|
|
<dt><strong>Returns:</strong>
|
|
<dd>Returns a non-negative value if successful;
|
|
otherwise returns a negative value.
|
|
<dt><strong>Fortran90 Interface:</strong> h5dont_atexit_f
|
|
<dd>
|
|
<pre>
|
|
SUBROUTINE h5dont_atexit_f(hdferr)
|
|
IMPLICIT NONE
|
|
INTEGER, INTENT(OUT) :: hdferr ! Error code
|
|
|
|
END SUBROUTINE h5dont_atexit_f
|
|
</pre>
|
|
|
|
<!--<dt><strong>Non-C API(s):</strong>
|
|
<dd>
|
|
|
|
<img src="Graphics/Java.gif">
|
|
<img src="Graphics/C++.gif">
|
|
-->
|
|
</dl>
|
|
|
|
<!-- NEW PAGE -->
|
|
<!-- HEADER RIGHT "H5garbage_collect" -->
|
|
<hr>
|
|
<dl>
|
|
<dt><strong>Name:</strong> <a name="Library-GarbageCollect">H5garbage_collect</a>
|
|
<dt><strong>Signature:</strong>
|
|
<dd><em>herr_t</em> <code>H5garbage_collect</code>(<em>void</em>)
|
|
<dt><strong>Purpose:</strong>
|
|
<dd>Garbage collects on all free-lists of all types.
|
|
<dt><strong>Description:</strong>
|
|
<dd><code>H5garbage_collect</code> walks through all the garbage
|
|
collection routines of the library, freeing any unused memory.
|
|
<p>
|
|
It is not required that <code>H5garbage_collect</code> be called
|
|
at any particular time; it is only necessary in certain situations
|
|
where the application has performed actions that cause the library
|
|
to allocate many objects. The application should call
|
|
<code>H5garbage_collect</code> if it eventually releases those
|
|
objects and wants to reduce the memory used by the library from
|
|
the peak usage required.
|
|
<p>
|
|
The library automatically garbage collects all the free lists
|
|
when the application ends.
|
|
<dt><strong>Parameters:</strong>
|
|
<dl>
|
|
<dt>None.
|
|
</dl>
|
|
<dt><strong>Returns:</strong>
|
|
<dd>Returns a non-negative value if successful;
|
|
otherwise returns a negative value.
|
|
<dt><strong>Fortran90 Interface:</strong> h5garbage_collect_f
|
|
<dd>
|
|
<pre>
|
|
SUBROUTINE h5garbage_collect_f(hdferr)
|
|
IMPLICIT NONE
|
|
INTEGER, INTENT(OUT) :: hdferr ! Error code
|
|
|
|
END SUBROUTINE h5garbage_collect_f
|
|
</pre>
|
|
|
|
<!--<dt><strong>Non-C API(s):</strong>
|
|
<dd>
|
|
|
|
<img src="Graphics/Java.gif">
|
|
<img src="Graphics/C++.gif">
|
|
-->
|
|
</dl>
|
|
|
|
<!-- NEW PAGE -->
|
|
<!-- HEADER RIGHT "H5get_libversion" -->
|
|
<hr>
|
|
<dl>
|
|
<dt><strong>Name:</strong> <a name="Library-Version">H5get_libversion</a>
|
|
<dt><strong>Signature:</strong>
|
|
<dd><em>herr_t</em> <code>H5get_libversion</code>(<em>unsigned *</em><code>majnum</code>,
|
|
<em>unsigned *</em><code>minnum</code>,
|
|
<em>unsigned *</em><code>relnum</code>
|
|
)
|
|
<dt><strong>Purpose:</strong>
|
|
<dd>Returns the HDF library release number.
|
|
<dt><strong>Description:</strong>
|
|
<dd><code>H5get_libversion</code> retrieves the major, minor, and release
|
|
numbers of the version of the HDF library which is linked to
|
|
the application.
|
|
<dt><strong>Parameters:</strong>
|
|
<ul><table>
|
|
<tr>
|
|
<td valign="top"><em>unsigned *</em><code>majnum</code></td>
|
|
<td valign="top">OUT: The major version of the library.</td></tr>
|
|
<tr>
|
|
<td valign="top"><em>unsigned *</em><code>minnum </code></td>
|
|
<td valign="top">OUT: The minor version of the library.</td></tr>
|
|
<tr>
|
|
<td valign="top"><em>unsigned *</em><code>relnum</code></td>
|
|
<td valign="top">OUT: The release number of the library.</td></tr>
|
|
</table></ul>
|
|
<dt><strong>Returns:</strong>
|
|
<dd>Returns a non-negative value if successful;
|
|
otherwise returns a negative value.
|
|
<dt><strong>Fortran90 Interface:</strong> h5get_libversion_f
|
|
<dd>
|
|
<pre>
|
|
SUBROUTINE h5get_libversion_f(hdferr)
|
|
IMPLICIT NONE
|
|
INTEGER, INTENT(OUT) :: majnum ! The major version of the library
|
|
INTEGER, INTENT(OUT) :: minnum ! The minor version of the library
|
|
INTEGER, INTENT(OUT) :: relnum ! The release number
|
|
INTEGER, INTENT(OUT) :: hdferr ! Error code
|
|
|
|
END SUBROUTINE h5get_libversion_f
|
|
</pre>
|
|
|
|
<!--<dt><strong>Non-C API(s):</strong>
|
|
<dd>
|
|
|
|
<img src="Graphics/Java.gif">
|
|
<img src="Graphics/C++.gif">
|
|
-->
|
|
</dl>
|
|
|
|
<!-- NEW PAGE -->
|
|
<!-- HEADER RIGHT "H5open" -->
|
|
<hr>
|
|
<dl>
|
|
<dt><strong>Name:</strong> <a name="Library-Open">H5open</a>
|
|
<dt><strong>Signature:</strong>
|
|
<dd><em>herr_t</em> <code>H5open</code>(<em>void</em>)
|
|
<dt><strong>Purpose:</strong>
|
|
<dd>Initializes the HDF5 library.
|
|
<dt><strong>Description:</strong>
|
|
<dd><code>H5open</code> initialize the library.
|
|
<p>
|
|
When the HDF5 Library is employed in a C application,
|
|
this function is normally called automatically, but if you
|
|
find that an HDF5 library function is failing inexplicably,
|
|
try calling this function first.
|
|
If you wish to elimnate this possibility, it is safe to
|
|
routinely call <code>H5open</code> before an application
|
|
starts working with the library as there are no damaging
|
|
side-effects in calling it more than once.
|
|
<p>
|
|
When the HDF5 Library is employed in a Fortran90 application,
|
|
<code>h5open_f</code> initializes global variables
|
|
(e.g. predefined types) and performs other tasks required to
|
|
initialize the library.
|
|
<code>h5open_f</code> and <code>h5close_f</code> are therefore
|
|
required calls in Fortran90 applications.
|
|
<dt><strong>Parameters:</strong>
|
|
<dl>
|
|
<dt>None.
|
|
</dl>
|
|
<dt><strong>Returns:</strong>
|
|
<dd>Returns a non-negative value if successful;
|
|
otherwise returns a negative value.
|
|
<dt><strong>Fortran90 Interface:</strong> h5open_f
|
|
<dd>
|
|
<pre>
|
|
SUBROUTINE h5open_f(hdferr)
|
|
IMPLICIT NONE
|
|
INTEGER, INTENT(OUT) :: hdferr ! Error code
|
|
|
|
END SUBROUTINE h5open_f
|
|
</pre>
|
|
|
|
<!--<dt><strong>Non-C API(s):</strong>
|
|
<dd>
|
|
|
|
<img src="Graphics/Java.gif">
|
|
<img src="Graphics/C++.gif">
|
|
-->
|
|
</dl>
|
|
|
|
<!-- NEW PAGE -->
|
|
<!-- HEADER RIGHT "H5set_free_list_limits" -->
|
|
<hr>
|
|
<dl>
|
|
<dt><strong>Name:</strong> <a name="Library-SetFreeListLimits">H5set_free_list_limits</a>
|
|
<dt><strong>Signature:</strong>
|
|
<dd><em>herr_t</em> <code>H5set_free_list_limits</code>(<em>int</em> <code>reg_global_lim</code>,
|
|
<em>int</em> <code>reg_list_lim</code>,
|
|
<em>int</em> <code>arr_global_lim</code>,
|
|
<em>int</em> <code>arr_list_lim</code>,
|
|
<em>int</em> <code>blk_global_lim</code>,
|
|
<em>int</em> <code>blk_list_lim</code>
|
|
)
|
|
<dt><strong>Purpose:</strong>
|
|
<dd>Sets free-list size limits.
|
|
<dt><strong>Description:</strong>
|
|
<dd><code>H5set_free_list_limits</code> sets size limits
|
|
on all types of free lists.
|
|
The HDF5 library uses free lists internally to manage memory.
|
|
There are three types of free lists:
|
|
<ul><li><span class=termDef>Regular</span>
|
|
free lists manage a single data structure.
|
|
<li><span class=termDef>Array</span>
|
|
free lists manage arrays of a data structure.
|
|
<li><span class=termDef>Block</span>
|
|
free lists manage blocks of bytes.
|
|
</ul>
|
|
<em>Alternate phrasing?</em>:
|
|
<ul><li><span class=termDef>Regular</span>
|
|
free lists manage data structures containing atomic data.
|
|
<li><span class=termDef>Array</span>
|
|
free lists manage data structures containing array data.
|
|
<li><span class=termDef>Block</span>
|
|
free lists manage blocks of bytes.
|
|
</ul>
|
|
<p>
|
|
These are global limits, but each limit applies only to
|
|
free lists of the specified type.
|
|
Therefore, if an application sets a 1Mb limit on each of
|
|
the global lists, up to 3Mb of total storage might be
|
|
allocated, 1Mb for each of the regular, array, and
|
|
block type lists.
|
|
<p>
|
|
Using a value of <code>-1</code> for a limit means that
|
|
no limit is set for the specified type of free list.
|
|
<dt><strong>Parameters:</strong>
|
|
<ul><table>
|
|
<tr>
|
|
<td valign="top"><em>int</em> <code>reg_global_lim </code></td>
|
|
<td valign="top">IN: The limit on all regular free list memory used</td></tr>
|
|
<tr>
|
|
<td valign="top"><em>int</em> <code>reg_list_lim</code></td>
|
|
<td valign="top">IN: The limit on memory used in each regular free list</td></tr>
|
|
<tr>
|
|
<td valign="top"><em>int</em> <code>arr_global_lim</code></td>
|
|
<td valign="top">IN: The limit on all array free list memory used</td></tr>
|
|
<tr>
|
|
<td valign="top"><em>int</em> <code>arr_list_lim</code></td>
|
|
<td valign="top">IN: The limit on memory used in each array free list</td></tr>
|
|
<tr>
|
|
<td valign="top"><em>int</em> <code>blk_global_lim</code></td>
|
|
<td valign="top">IN: The limit on all block free list memory used</td></tr>
|
|
<tr>
|
|
<td valign="top"><em>int</em> <code>blk_list_lim</code></td>
|
|
<td valign="top">IN: The limit on memory used in each block free list</td></tr>
|
|
</table></ul>
|
|
<dt><strong>Returns:</strong>
|
|
<dd>Returns a non-negative value if successful;
|
|
otherwise returns a negative value.
|
|
<dt><strong>Fortran90 Interface:</strong>
|
|
<dd>None.
|
|
<!--
|
|
<pre>
|
|
SUBROUTINE
|
|
</pre>
|
|
-->
|
|
|
|
<!--<dt><strong>Non-C API(s):</strong>
|
|
<dd>
|
|
|
|
<img src="Graphics/Java.gif">
|
|
<img src="Graphics/C++.gif">
|
|
-->
|
|
</dl>
|
|
|
|
|
|
<!-- #BeginLibraryItem "/ed_libs/NavBar_RM.lbi" --><hr>
|
|
<center>
|
|
<table border=0 width=98%>
|
|
<tr><td valign=top align=left>
|
|
<a href="index.html">HDF5 documents and links</a> <br>
|
|
<a href="H5.intro.html">Introduction to HDF5</a> <br>
|
|
<a href="http://hdf.ncsa.uiuc.edu/HDF5/doc/UG/index.html">HDF5 User Guide</a> <br>
|
|
<!--
|
|
<a href="Glossary.html">Glossary</a><br>
|
|
-->
|
|
</td>
|
|
<td valign=top align=right>
|
|
And in this document, the
|
|
<a href="RM_H5Front.html">HDF5 Reference Manual</a>
|
|
<br>
|
|
<a href="RM_H5.html">H5</a>
|
|
<a href="RM_H5A.html">H5A</a>
|
|
<a href="RM_H5D.html">H5D</a>
|
|
<a href="RM_H5E.html">H5E</a>
|
|
<a href="RM_H5F.html">H5F</a>
|
|
<a href="RM_H5G.html">H5G</a>
|
|
<a href="RM_H5I.html">H5I</a>
|
|
<a href="RM_H5P.html">H5P</a>
|
|
<br>
|
|
<a href="RM_H5R.html">H5R</a>
|
|
<a href="RM_H5S.html">H5S</a>
|
|
<a href="RM_H5T.html">H5T</a>
|
|
<a href="RM_H5Z.html">H5Z</a>
|
|
<a href="Tools.html">Tools</a>
|
|
<a href="PredefDTypes.html">Datatypes</a>
|
|
</td></tr>
|
|
</table>
|
|
</center>
|
|
<hr><!-- #EndLibraryItem --><!-- #BeginLibraryItem "/ed_libs/Footer.lbi" --><address>
|
|
<a href="mailto:hdfhelp@ncsa.uiuc.edu">HDF Help Desk</a>
|
|
<br>
|
|
Describes HDF5 Release 1.7, the unreleased development branch; working toward HDF5 Release 1.8.0
|
|
</address><!-- #EndLibraryItem --><SCRIPT LANGUAGE="JAVASCRIPT">
|
|
<!--
|
|
document.writeln("Last modified: 24 February 2004");
|
|
-->
|
|
</SCRIPT>
|
|
|
|
</body>
|
|
</html>
|