hdf5/doc/html/RM_H5I.html
Frank Baker bcce957f4b [svn-r7691]
Description:
    Integrate Fortran90 function descriptions
        Remove "Non-C APIs" sections; add "Fortran90 Interface" sections
        Remove note that Fortran APIs are described in a separate window

Platforms tested:
    Safari
2003-10-21 17:18:46 -05:00

311 lines
11 KiB
HTML

<html>
<head><title>
HDF5/H5I 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">
<!-- HEADER RIGHT " " -->
<!-- #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>&nbsp;<br>
<a href="H5.intro.html">Introduction to HDF5</a>&nbsp;<br>
<a href="http://hdf.ncsa.uiuc.edu/HDF5/doc/UG/index.html">HDF5 User Guide</a>&nbsp;<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>&nbsp;&nbsp;
<br>
<a href="RM_H5.html">H5</a>&nbsp;&nbsp;
<a href="RM_H5A.html">H5A</a>&nbsp;&nbsp;
<a href="RM_H5D.html">H5D</a>&nbsp;&nbsp;
<a href="RM_H5E.html">H5E</a>&nbsp;&nbsp;
<a href="RM_H5F.html">H5F</a>&nbsp;&nbsp;
<a href="RM_H5G.html">H5G</a>&nbsp;&nbsp;
<a href="RM_H5I.html">H5I</a>&nbsp;&nbsp;
<a href="RM_H5P.html">H5P</a>&nbsp;&nbsp;
<br>
<a href="RM_H5R.html">H5R</a>&nbsp;&nbsp;
<a href="RM_H5S.html">H5S</a>&nbsp;&nbsp;
<a href="RM_H5T.html">H5T</a>&nbsp;&nbsp;
<a href="RM_H5Z.html">H5Z</a>&nbsp;&nbsp;
<a href="Tools.html">Tools</a>&nbsp;&nbsp;
<a href="PredefDTypes.html">Datatypes</a>&nbsp;&nbsp;
</td></tr>
</table>
</center>
<hr><!-- #EndLibraryItem --><center>
<h1>H5I: Identifier Interface</h1>
</center>
<h2>Identifier API Functions</h2>
These functions provides tools for working with object identifiers and
object names.
<p>
<strong>The C Interface:</strong>
<table border=0>
<tr><td valign=top>
<ul>
<li><a href="#Identify-GetName">H5Iget_name</a>
</ul>
</td><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td valign=top>
<ul>
<li><a href="#Identify-GetType">H5Iget_type</a>
</ul>
</td><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td valign=top>
<ul>
&nbsp;
</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="#Identify-GetName">h5iget_name_f</a>
</ul>
</td><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td valign=top>
<ul>
<li><a href="#Identify-GetType">h5iget_type_f</a>
</ul>
</td><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td valign=top>
<ul>
&nbsp;
</ul>
</td></tr>
</table>
<!-- NEW PAGE -->
<!-- NEW PAGE -->
<!-- HEADER RIGHT "H5Iget_name" -->
<hr>
<dl>
<dt><strong>Name:</strong> <a name="Identify-GetName">H5Iget_name</a>
<dt><strong>Signature:</strong>
<dd><em>ssize_t</em> <code>H5Iget_name</code>(<em>hid_t</em> <code>obj_id</code>,
<em>char *</em><code>name</code>,
<em>size_t</em> <code>size</code>
)
<dt><strong>Purpose:</strong> </dt>
<dd>Retrieves a name of an object based on the object identifier.
<dt><strong>Description:</strong>
<dd><code>H5Iget_name</code> retrieves a name for the object identified
by <code>obj_id</code>.
<p>
Up to <code>size</code> characters of the name are returned in
<code>name</code>; additional characters, if any, are not returned
to the user application.
<p>
If the length of the name, which determines the required
value of <code>size</code>, is unknown, a preliminary
<code>H5Iget_name</code> call can be made.
The return value of this call will be the size of the
object name.
That value can then be assigned to <code>size</code>
for a second <code>H5Iget_name</code> call,
which will retrieve the actual name.
<p>
If there is no name associated with the object identifier
or if the name is <code>NULL</code>, <code>H5Iget_name</code>
returns <code>0</code> (zero).
<p>
Note that an object in an HDF5 file may have multiple names,
varying according to the path through the HDF5 group
hierarchy used to reach that object.
<dt><strong>Parameters:</strong>
<dl>
<dt><em>hid_t</em> <code>obj_id</code>
<dd>IN: Identifier of the object.
This identifier can refer to a group, dataset, or
named datatype.
<dt><em>char *</em><code>name</code>
<dd>OUT: A name associated with the identifier.
<dt><em>size_t size</em>
<dd>IN: The size of the <code>name</code> buffer.
</dl>
<dt><strong>Returns:</strong>
<dd>Returns the length of the name if successful,
returning <code>0</code> (zero) if no name is associated with the identifier.
Otherwise returns a negative value.
<dt><strong>Fortran90 Interface:</strong> h5iget_name_f
<dd>
<pre>
SUBROUTINE h5iget_name_f(obj_id, buf, buf_size, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: obj_id ! Object identifier
CHARACTER(LEN=*), INTENT(OUT) :: buf ! Buffer to hold object name
INTEGER(SIZE_T), INTENT(IN) :: buf_size ! Buffer size
INTEGER(SIZE_T), INTENT(OUT) :: name_size ! Name size
INTEGER, INTENT(OUT) :: hdferr ! Error code
! 0 on success, and -1 on failure
END SUBROUTINE h5iget_name_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 "H5Iget_type" -->
<hr>
<dl>
<dt><strong>Name:</strong> <a name="Identify-GetType">H5Iget_type</a>
<dt><strong>Signature:</strong>
<dd><em>H5I_type_t</em> <code>H5Iget_type</code>(<em>hid_t</em> <code>obj_id</code>)
<dt><strong>Purpose:</strong>
<dd>Retrieves the type of an object.
<dt><strong>Description:</strong>
<dd><code>H5Iget_type</code> retrieves the type of the object
identified by <code>obj_id</code>.
<p>
Valid types returned by the function are
<table>
<tr><td width=200><code>&nbsp;&nbsp;&nbsp;&nbsp;H5I_FILE</code>
</td><td>File</td></tr>
<tr><td><code>&nbsp;&nbsp;&nbsp;&nbsp;H5I_GROUP</code>
</td><td>Group</td></tr>
<tr><td><code>&nbsp;&nbsp;&nbsp;&nbsp;H5I_DATATYPE</code>
</td><td>Datatype</td></tr>
<tr><td><code>&nbsp;&nbsp;&nbsp;&nbsp;H5I_DATASPACE</code>
</td><td>Dataspace</td></tr>
<tr><td><code>&nbsp;&nbsp;&nbsp;&nbsp;H5I_DATASET</code>
</td><td>Dataset</td></tr>
<tr><td><code>&nbsp;&nbsp;&nbsp;&nbsp;H5I_ATTR</code>
</td><td>Attribute</td></tr>
</table>
If no valid type can be determined or the identifier
submitted is invalid, the function returns
<table>
<tr><td width=200><code>&nbsp;&nbsp;&nbsp;&nbsp;H5I_BADID</code>
</td><td>Invalid identifier</td></tr>
</table>
<p>
This function is of particular value in determining the
type of object closing function (<code>H5Dclose</code>,
<code>H5Gclose</code>, etc.) to call after a call to
<code>H5Rdereference</code>.
<dt><strong>Parameters:</strong>
<dl>
<dt><em>hid_t</em> <code>obj_id</code>
<dd>IN: Object identifier whose type is to be determined.
</dl>
<dt><strong>Returns:</strong>
<dd>Returns the object type if successful;
otherwise <code>H5I_BADID</code>.
<dt><strong>Fortran90 Interface:</strong> h5iget_type_f
<dd>
<pre>
SUBROUTINE h5iget_type_f(obj_id, type, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: obj_id !Object identifier
INTEGER, INTENT(OUT) :: type !type of an object.
!possible values are:
!H5I_FILE_F(1)
!H5I_GROUP_F(2)
!H5I_DATATYPE_F(3)
!H5I_DATASPACE_F(4)
!H5I_DATASET_F(5)
!H5I_ATTR_F(6)
!H5I_BADID_F(-1)
INTEGER, INTENT(OUT) :: hdferr ! E rror code
! 0 on success, and -1 on failure
END SUBROUTINE h5iget_type_f
</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>&nbsp;<br>
<a href="H5.intro.html">Introduction to HDF5</a>&nbsp;<br>
<a href="http://hdf.ncsa.uiuc.edu/HDF5/doc/UG/index.html">HDF5 User Guide</a>&nbsp;<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>&nbsp;&nbsp;
<br>
<a href="RM_H5.html">H5</a>&nbsp;&nbsp;
<a href="RM_H5A.html">H5A</a>&nbsp;&nbsp;
<a href="RM_H5D.html">H5D</a>&nbsp;&nbsp;
<a href="RM_H5E.html">H5E</a>&nbsp;&nbsp;
<a href="RM_H5F.html">H5F</a>&nbsp;&nbsp;
<a href="RM_H5G.html">H5G</a>&nbsp;&nbsp;
<a href="RM_H5I.html">H5I</a>&nbsp;&nbsp;
<a href="RM_H5P.html">H5P</a>&nbsp;&nbsp;
<br>
<a href="RM_H5R.html">H5R</a>&nbsp;&nbsp;
<a href="RM_H5S.html">H5S</a>&nbsp;&nbsp;
<a href="RM_H5T.html">H5T</a>&nbsp;&nbsp;
<a href="RM_H5Z.html">H5Z</a>&nbsp;&nbsp;
<a href="Tools.html">Tools</a>&nbsp;&nbsp;
<a href="PredefDTypes.html">Datatypes</a>&nbsp;&nbsp;
</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.6.0, July 2003
</address><!-- #EndLibraryItem --><SCRIPT LANGUAGE="JAVASCRIPT">
<!--
document.writeln("Last modified: 21 October 2003");
-->
</SCRIPT>
</body>
</html>