Files
hdf5/doxygen/examples/FileFormat.html
T
Larry Knox 5086959778 Sync develop changes April 4 -April 22 to hdf5_1_14 (#4437)
* Fixed dead links in docs (#4334)

* Revert "Fixed dead links in docs (#4334)" (#4335)

This reverts commit 408fc66002.

* Fix grammar and content in HDF5Examples (#4333)

* Remove HD macros for C time functions (#4337)

* HDasctime
* HDclock
* HDctime
* HDdifftime
* HDgmtime
* HDlocaltime
* HDmktime
* HDtime
* HDtzset

HDgettimeofday will be done later

* Remove HD prefix from toupper/tolower (#4340)

* Add VDS and SWMR to documentation (#4336)

* Clean up random number generator code (#4338)

* Clean up random number generator code

Depending on the platform, we use a mix of random, rand, and rand_r
to generate pseudo-random numbers, along with a messy set of ifdefs
in H5private.h. We are not a cryptographic library, only use random
numbers in our test code, and have no need for anything more than the
C standard's (s)rand(). There's no point dithering about using rand()
vs random() when we're also doing bad things like using mod to
restrict the range, which introduces bias.

Also removes CMake/configure checks for rand_r and random

* Remove random/rand_r checks from build system

* Fix missed HDrandom after GitHub merge

* Remove the getting started guide (#4339)

This was moved to the wiki

* Remove noise comment from H5DO.c (#4342)

* Add note about H5Iregister_type hash_table param (#4345)

The hash_table parameter is unused in HDF5 1.8.13 and later, when we moved from using hash tables to skip lists for storing IDs. The current hash table implementation does not use this parameter.

* Remove `#undef ERR` from H5private.h (#4346)

This is an old work-around that is no longer necessary.

The only place where we defined ERR is in h5import, and that code
has been updated (in this PR) to rename ERR to INVALID_TOKEN.

* Add NAMECHECK_ONLY to macro list in .clang-format (#4343)

This caused H5TS.c functions to be mis-formatted

* Remove HD from last non-win32 C89 functions (#4348)

Removes the HD prefix from the last C89 functions with no special
Windows equilvalent:

* rename
* rewind
* setbuf
* signal
* tmpfile

* Fix dead links cont. (#4349)

Added img/images_to_copy.dox as a temporary solution because doxygen didn't copy
the images used in the examples/*.html files - will investigate more.  This was
necessary for the links to intro_SWMR.html and intro_VDS.html.

* Fix a typo (#4352)

* Fix use of possibly uninitialized memory in h5repack (#4354)

* Match content listing with content. (#4357)

* Remove obsolete c++ doxygen config files (#4358)

* Fix typo VERSIO (#4363)

* Removed duplicate entries in compile line for h5* compiler wrappers (#4360)

* h5fc remove duplicate args
* h5 wrappers remove duplicate args

* Added CVE info to RELEASE.txt (#4367)

* Change doxygen version from 1.10.0 to 1.9.7 (#4371)

* Fix all doxygen versions (#4377)

* Change date to data in INSTALL_parallel (#4384)

* Fix a broken link for zlib url (#4383)

* Fix broken links and references in INSTALL_Auto.txt (#4382)

* Remove  signature in comment (#4366)

* switched from \returns to commonly used \return (#4389)

* Add CXX flags (#4359)

* Remove TRACE macros (#4341)

* Set available CMake build types for non-multi-config generators (#4330)

* Correct the high-level library link (#4398)

* Correct the high-level library link

The link currently used points to 1.13 release.  Changed to use the md file instead.

* Update Doxyfile for md files

* Update to include md files

* Add additional terms to the glossary (#4401)

Fixes GH #4390

* added missing doxygen \since (#4410)

* Update Intel oneAPI version to 2024.1 (#4412)

* Update documentation (#4403)

- Added File Image Operations to Technical Notes

* Use a correct example location

* Use aliases for URLs (#4409)

* Fix CXX sanitizer by moving marco include to after CXX code. (#4414)

* Update and use more URL alias (#4413)

* Update documentation (#4415)

Added the replacement for https://docs.hdfgroup.org/archive/support/HDF5/doc/TechNotes/Version.html
Corrected some minor typos and another deadlink

* Remove obsolete file (#4416)

* Update oneAPI version to 2024.1 for Daily Build (#4418)

* Add training videos page (#4422)

* Updates for release_docs/NEWSLETTER.txt. (#4423)

* Add release process markdown file (#4312)

* Lowercase  in File Format Specification (#4424)

* Fixing string in RELEASE_PROCESS.md that is causing a doxygen error - (#4430)

Unsupported xml/html tag <n> found.

* Allow clang-format to format H5Cpkg.h (#4429)

Co-authored-by: Larry Knox <lrknox@hdfgroup.org>

* Fix broken links in md files needing full URLs.

* Add URL for Java examples that was accidentally dropped.
Change paths from develop to 1.14 directories for some doxygen generated
files.

* Correct typo.

* Fix 2 more dead URLs.

* Revert "Clean up random number generator code (#4338)"

This reverts commit 58e4d0842a.
2024-04-25 13:33:26 -05:00

1276 lines
38 KiB
HTML

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<!-- saved from url=(0072)https://gamma.hdfgroup.org/papers/HISS/030515.FileFormat/FileFormat.html -->
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>HDF5 File Format Discussion</title>
<meta name="author" content="Quincey Koziol">
</head>
<body text="#000000" bgcolor="#FFFFFF">
<style type="text/css">
OL.loweralpha { list-style-type: lower-alpha }
OL.upperroman { list-style-type: upper-roman }
</style>
<style type="text/css">
TD CAPTION EM { color: red }
TD EM { color: blue }
TABLE CAPTION STRONG { font-size: larger }
</style>
<center><h1>HDF5 File Format Discussion</h1></center>
<center><h3>Quincey Koziol<br>
koziol@ncsa.uiuc.edu<br>
May 15, 2003
</h3></center>
<ol class="upperroman">
<li><h3><u>Document's Audience:</u></h3>
<ul>
<li>Current H5 library designers and knowledgeable external developers.</li>
</ul>
</li><li><h3><u>Background Reading:</u></h3>
<dl>
<dt><a href="https://\DOXURL/_s_p_e_c.html">HDF5 File Format Specification</a>
</dt><dd>This describes the current HDF5 file format.
</dd></dl>
</li><li><h3><u>Introduction:</u></h3>
<dl>
<dt><strong>What is this document about?</strong></dt>
<dd>This document attempts to explain the HDF5 file format
specification with a few examples and describes some potential
improvements to the format specification.
</dd> <br>
</dl>
</li><li><h3><u>File Format Examples:</u></h3>
<p>This section has several small programs and describes the format of a file
created with each of them.
</p>
<p>Example program one - <em>Create an empty file</em>:
</p><pre> <code>
#include "hdf5.h"
#include <assert.h>
int main()
{
hid_t fid; /* File ID */
herr_t ret; /* Generic return value */
/* Create the file */
fid=H5Fcreate("example1.h5", H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT);
assert(fid&gt;=0);
/* Close the file */
ret=H5Fclose(fid);
assert(ret&gt;=0);
return(0);
}
</assert.h></code> </pre>
<center>
<table border="" align="center" cellpadding="4" width="80%">
<caption align="top">
<strong>Super Block</strong>
</caption>
<tbody><tr align="center">
<th width="25%">byte</th>
<th width="25%">byte</th>
<th width="25%">byte</th>
<th width="25%">byte</th>
</tr>
<tr align="center">
<td>\211</td>
<td>'H'</td>
<td>'D'</td>
<td>'F'</td>
</tr>
<tr align="center">
<td>\r</td>
<td>\n</td>
<td>\032</td>
<td>\n</td>
</tr>
<tr align="center">
<td>0</td>
<td>0</td>
<td>0</td>
<td>0</td>
</tr>
<tr align="center">
<td>0</td>
<td>8</td>
<td>8</td>
<td>0</td>
</tr>
<tr align="center">
<td colspan="2">4</td>
<td colspan="2">16</td>
</tr>
<tr align="center">
<td colspan="4">0x00000003</td>
</tr>
<tr align="center">
<td colspan="4">0</td>
</tr>
<tr align="center">
<td colspan="4"><br>0xffffffffffffffff<br><br></td>
</tr>
<tr align="center">
<td colspan="4">?</td>
</tr>
<tr align="center">
<td colspan="4"><br>0xffffffffffffffff<br><br></td>
</tr>
<tr align="center">
<td colspan="4">
<table border="" width="100%">
<tbody><tr align="center">
<td colspan="4">0</td>
</tr>
<tr align="center">
<td colspan="4"><br>928<br><br></td>
</tr>
<tr align="center">
<td colspan="4">H5G_CACHED_STAB (1)</td>
</tr>
<tr align="center">
<td colspan="4">0</td>
</tr>
<tr align="center">
<td colspan="4">
<table border="" width="100%">
<tbody><tr align="center">
<td colspan="4"><br>384<br><br></td>
</tr>
<tr align="center">
<td colspan="4"><br>96<br><br></td>
</tr>
</tbody></table>
</td>
</tr>
</tbody></table>
</td>
</tr>
</tbody></table>
</center>
<br>
<pre> <code>
%h5debug example1.h5
Reading signature at address 0 (rel)
File Super Block...
File name: example1.h5
File access flags 0x00000000
File open reference count: 1
Address of super block: 0 (abs)
Size of user block: 0 bytes
Super block version number: 0
Free list version number: 0
Root group symbol table entry version number: 0
Shared header version number: 0
Size of file offsets (haddr_t type): 8 bytes
Size of file lengths (hsize_t type): 8 bytes
Symbol table leaf node 1/2 rank: 4
Symbol table internal node 1/2 rank: 16
File consistency flags: 0x00000003
Base address: 0 (abs)
Free list address: UNDEF (rel)
Address of driver information block: UNDEF (rel)
Root group symbol table entry:
Name offset into private heap: 0
Object header address: 928
Dirty: Yes
Cache info type: Symbol Table
Cached information:
B-tree address: 384
Heap address: 96
</code> </pre>
<center>
<table border="" cellpadding="4" width="80%">
<caption align="top">
<strong>Root Group Object Header</strong>
</caption>
<tbody><tr align="center">
<th width="25%">byte</th>
<th width="25%">byte</th>
<th width="25%">byte</th>
<th width="25%">byte</th>
</tr>
<tr align="center">
<td colspan="1" width="25%">1</td>
<td colspan="1" width="25%">0</td>
<td colspan="2" width="50%">2</td>
</tr>
<tr align="center">
<td colspan="4">1</td>
</tr>
<tr align="center">
<td colspan="4">32</td>
</tr>
<tr align="center">
<td colspan="2">0x0011</td>
<td colspan="2">16</td>
</tr>
<tr align="center">
<td>0x01</td>
<td colspan="3">0</td>
</tr>
<tr align="center">
<td colspan="4">
<table border="" width="100%">
<tbody><tr align="center">
<td colspan="4"><br>384<br><br></td>
</tr>
<tr align="center">
<td colspan="4"><br>96<br><br></td>
</tr>
</tbody></table>
</td>
</tr>
<tr align="center">
<td colspan="2">0</td>
<td colspan="2">0</td>
</tr>
<tr align="center">
<td>0x00</td>
<td colspan="3">0</td>
</tr>
</tbody></table>
</center>
<br>
<pre> <code>
%h5debug example1.h5 928
New address: 928
Reading signature at address 928 (rel)
Object Header...
Dirty: 0
Version: 1
Header size (in bytes): 16
Number of links: 1
Number of messages (allocated): 2 (32)
Number of chunks (allocated): 1 (8)
Chunk 0...
Dirty: 0
Address: 944
Size in bytes: 32
Message 0...
Message ID (sequence number): 0x0011 stab(0)
Shared message: No
Constant: Yes
Raw size in obj header: 16 bytes
Chunk number: 0
Message Information:
B-tree address: 384
Name heap address: 96
Message 1...
Message ID (sequence number): 0x0000 null(0)
Shared message: No
Constant: No
Raw size in obj header: 0 bytes
Chunk number: 0
Message Information:
<no info="" for="" this="" message="">
</no></code> </pre>
<center>
<table border="" cellpadding="4" width="80%">
<caption align="top">
<strong>Root Group Local Heap</strong>
</caption>
<tbody><tr align="center">
<th width="25%">byte</th>
<th width="25%">byte</th>
<th width="25%">byte</th>
<th width="25%">byte</th>
</tr>
<tr align="center">
<td>'H'</td>
<td>'E'</td>
<td>'A'</td>
<td>'P'</td>
</tr>
<tr align="center">
<td colspan="4">0</td>
</tr>
<tr align="center">
<td colspan="4">256</td>
</tr>
<tr align="center">
<td colspan="4">8</td>
</tr>
<tr align="center">
<td colspan="4">128</td>
</tr>
</tbody></table>
</center>
<br>
<pre> <code>
%h5debug example1.h5 96
New address: 96
Reading signature at address 96 (rel)
Local Heap...
Dirty: 0
Header size (in bytes): 32
Address of heap data: 128
Data bytes allocated on disk: 256
Data bytes allocated in core: 256
Free Blocks (offset, size):
Block #0: 8, 248
Percent of heap used: 3.12%
Data follows (`__' indicates free region)...
0: 00 00 00 00 00 00 00 00 __ __ __ __ __ __ __ __ ........
16: __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __
32: __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __
48: __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __
64: __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __
80: __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __
96: __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __
112: __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __
128: __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __
144: __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __
160: __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __
176: __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __
192: __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __
208: __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __
224: __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __
240: __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __
</code> </pre>
<center>
<table border="" cellpadding="4" width="80%">
<caption align="top">
<strong>Root Group B-tree</strong>
</caption>
<tbody><tr align="center">
<th width="25%">byte</th>
<th width="25%">byte</th>
<th width="25%">byte</th>
<th width="25%">byte</th>
</tr><tr align="center">
<td>'T'</td>
<td>'R'</td>
<td>'E'</td>
<td>'E'</td>
</tr><tr align="center">
<td>0</td>
<td>0</td>
<td colspan="2">0</td>
</tr><tr align="center">
<td colspan="4"><br>0xffffffffffffffff<br><br></td>
</tr><tr align="center">
<td colspan="4"><br>0xffffffffffffffff<br><br></td>
</tr></tbody></table>
</center>
<br>
<pre> <code>
%h5debug example1.h5 384 96
New address: 384
Reading signature at address 384 (rel)
Tree type ID: H5B_SNODE_ID
Size of node: 544
Size of raw (disk) key: 8
Dirty flag: False
Number of initial dirty children: 0
Level: 0
Address of left sibling: UNDEF
Address of right sibling: UNDEF
Number of children (max): 0 (32)
</code> </pre>
<p></p>
<p>Example program two - <em>Create a file with a single dataset in it</em>:
</p><pre> <code>
#include "hdf5.h"
#include <assert.h>
int main()
{
hid_t fid; /* File ID */
hid_t sid; /* Dataspace ID */
hid_t did; /* Dataset ID */
herr_t ret; /* Generic return value */
/* Create the file */
fid=H5Fcreate("example2.h5", H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT);
assert(fid&gt;=0);
/* Create a scalar dataspace for the dataset */
sid=H5Screate(H5S_SCALAR);
assert(sid&gt;=0);
/* Create a trivial dataset */
did=H5Dcreate(fid, "Dataset", H5T_NATIVE_INT, sid, H5P_DEFAULT);
assert(did&gt;=0);
/* Close the dataset */
ret=H5Dclose(did);
assert(ret&gt;=0);
/* Close the dataspace */
ret=H5Sclose(sid);
assert(ret&gt;=0);
/* Close the file */
ret=H5Fclose(fid);
assert(ret&gt;=0);
return(0);
}
</assert.h></code> </pre>
<center>
<table border="" align="center" cellpadding="4" width="80%">
<caption align="top">
<strong>Super Block</strong>
</caption>
<tbody><tr align="center">
<th width="25%">byte</th>
<th width="25%">byte</th>
<th width="25%">byte</th>
<th width="25%">byte</th>
</tr>
<tr align="center">
<td>\211</td>
<td>'H'</td>
<td>'D'</td>
<td>'F'</td>
</tr>
<tr align="center">
<td>\r</td>
<td>\n</td>
<td>\032</td>
<td>\n</td>
</tr>
<tr align="center">
<td>0</td>
<td>0</td>
<td>0</td>
<td>0</td>
</tr>
<tr align="center">
<td>0</td>
<td>8</td>
<td>8</td>
<td>0</td>
</tr>
<tr align="center">
<td colspan="2">4</td>
<td colspan="2">16</td>
</tr>
<tr align="center">
<td colspan="4">0x00000003</td>
</tr>
<tr align="center">
<td colspan="4">0</td>
</tr>
<tr align="center">
<td colspan="4"><br>0xffffffffffffffff<br><br></td>
</tr>
<tr align="center">
<td colspan="4">?</td>
</tr>
<tr align="center">
<td colspan="4"><br>0xffffffffffffffff<br><br></td>
</tr>
<tr align="center">
<td colspan="4">
<table border="" width="100%">
<tbody><tr align="center">
<td colspan="4">0</td>
</tr>
<tr align="center">
<td colspan="4"><br>928<br><br></td>
</tr>
<tr align="center">
<td colspan="4">H5G_CACHED_STAB (1)</td>
</tr>
<tr align="center">
<td colspan="4">0</td>
</tr>
<tr align="center">
<td colspan="4">
<table border="" width="100%">
<tbody><tr align="center">
<td colspan="4"><br>384<br><br></td>
</tr>
<tr align="center">
<td colspan="4"><br>96<br><br></td>
</tr>
</tbody></table>
</td>
</tr>
</tbody></table>
</td>
</tr>
</tbody></table>
</center>
<br>
<pre> <code>
%h5debug example2.h5
Reading signature at address 0 (rel)
File Super Block...
File name: example2.h5
File access flags 0x00000000
File open reference count: 1
Address of super block: 0 (abs)
Size of user block: 0 bytes
Super block version number: 0
Free list version number: 0
Root group symbol table entry version number: 0
Shared header version number: 0
Size of file offsets (haddr_t type): 8 bytes
Size of file lengths (hsize_t type): 8 bytes
Symbol table leaf node 1/2 rank: 4
Symbol table internal node 1/2 rank: 16
File consistency flags: 0x00000003
Base address: 0 (abs)
Free list address: UNDEF (rel)
Address of driver information block: UNDEF (rel)
Root group symbol table entry:
Name offset into private heap: 0
Object header address: 928
Dirty: Yes
Cache info type: Symbol Table
Cached entry information:
B-tree address: 384
Heap address: 96
</code> </pre>
<center>
<table border="" cellpadding="4" width="80%">
<caption align="top">
<strong>Root Group Object Header</strong>
</caption>
<tbody><tr align="center">
<th width="25%">byte</th>
<th width="25%">byte</th>
<th width="25%">byte</th>
<th width="25%">byte</th>
</tr>
<tr align="center">
<td colspan="1" width="25%">1</td>
<td colspan="1" width="25%">0</td>
<td colspan="2" width="50%">2</td>
</tr>
<tr align="center">
<td colspan="4">1</td>
</tr>
<tr align="center">
<td colspan="4">32</td>
</tr>
<tr align="center">
<td colspan="2">0x0011</td>
<td colspan="2">16</td>
</tr>
<tr align="center">
<td>0x01</td>
<td colspan="3">0</td>
</tr>
<tr align="center">
<td colspan="4">
<table border="" width="100%">
<tbody><tr align="center">
<td colspan="4"><br>384<br><br></td>
</tr>
<tr align="center">
<td colspan="4"><br>96<br><br></td>
</tr>
</tbody></table>
</td>
</tr>
<tr align="center">
<td colspan="2">0</td>
<td colspan="2">0</td>
</tr>
<tr align="center">
<td>0x00</td>
<td colspan="3">0</td>
</tr>
</tbody></table>
</center>
<br>
<pre> <code>
%h5debug example2.h5 928
New address: 928
Reading signature at address 928 (rel)
Object Header...
Dirty: 0
Version: 1
Header size (in bytes): 16
Number of links: 1
Number of messages (allocated): 2 (32)
Number of chunks (allocated): 1 (8)
Chunk 0...
Dirty: 0
Address: 944
Size in bytes: 32
Message 0...
Message ID: 0x0011 stab(0)
Shared message: No
Constant: Yes
Raw size in obj header: 16 bytes
Chunk number: 0
Message Information:
B-tree address: 384
Name heap address: 96
Message 1...
Message ID: 0x0000 null(0)
Shared message: No
Constant: No
Raw size in obj header: 0 bytes
Chunk number: 0
Message Information:
<no info="" for="" this="" message="">
</no></code> </pre>
<center>
<table border="" cellpadding="4" width="80%">
<caption align="top">
<strong>Root Group Local Heap</strong>
</caption>
<tbody><tr align="center">
<th width="25%">byte</th>
<th width="25%">byte</th>
<th width="25%">byte</th>
<th width="25%">byte</th>
</tr>
<tr align="center">
<td>'H'</td>
<td>'E'</td>
<td>'A'</td>
<td>'P'</td>
</tr>
<tr align="center">
<td colspan="4">0</td>
</tr>
<tr align="center">
<td colspan="4">256</td>
</tr>
<tr align="center">
<td colspan="4">16</td>
</tr>
<tr align="center">
<td colspan="4">128</td>
</tr>
</tbody></table>
</center>
<br>
<pre> <code>
%h5debug example2.h5 96
New address: 96
Reading signature at address 96 (rel)
Local Heap...
Dirty: 0
Header size (in bytes): 32
Address of heap data: 128
Data bytes allocated on disk: 256
Data bytes allocated in core: 256
Free Blocks (offset, size):
Block #0: 16, 240
Percent of heap used: 6.25%
Data follows (`__' indicates free region)...
0: 00 00 00 00 00 00 00 00 44 61 74 61 73 65 74 00 ........Dataset.
16: __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __
32: __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __
48: __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __
64: __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __
80: __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __
96: __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __
112: __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __
128: __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __
144: __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __
160: __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __
176: __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __
192: __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __
208: __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __
224: __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __
240: __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __
</code> </pre>
<center>
<table border="" cellpadding="4" width="80%">
<caption align="top">
<strong>Root Group B-tree</strong>
</caption>
<tbody><tr align="center">
<th width="25%">byte</th>
<th width="25%">byte</th>
<th width="25%">byte</th>
<th width="25%">byte</th>
</tr><tr align="center">
<td>'T'</td>
<td>'R'</td>
<td>'E'</td>
<td>'E'</td>
</tr><tr align="center">
<td>0</td>
<td>0</td>
<td colspan="2">1</td>
</tr><tr align="center">
<td colspan="4"><br>0xffffffffffffffff<br><br></td>
</tr><tr align="center">
<td colspan="4"><br>0xffffffffffffffff<br><br></td>
</tr><tr align="center">
<td colspan="4"><br>0<br><br></td>
</tr><tr align="center">
<td colspan="4"><br>1248<br><br></td>
</tr><tr align="center">
<td colspan="4"><br>8<br><br></td>
</tr></tbody></table>
</center>
<br>
<pre> <code>
%h5debug example2.h5 384 96
New address: 384
Reading signature at address 384 (rel)
Tree type ID: H5B_SNODE_ID
Size of node: 544
Size of raw (disk) key: 8
Dirty flag: False
Number of initial dirty children: 0
Level: 0
Address of left sibling: UNDEF
Address of right sibling: UNDEF
Number of children (max): 1 (32)
Child 0...
Address: 1248
Left Key:
Heap offset: 0
Name :
Right Key:
Heap offset: 8
Name : Dataset
</code> </pre>
<center>
<table border="" cellpadding="4" width="80%">
<caption align="top">
<strong>Root Group B-tree Symbol Table Node</strong>
</caption>
<tbody><tr align="center">
<th width="25%">byte</th>
<th width="25%">byte</th>
<th width="25%">byte</th>
<th width="25%">byte</th>
</tr><tr align="center">
<td>'S'</td>
<td>'N'</td>
<td>'O'</td>
<td>'D'</td>
</tr><tr align="center">
<td>1</td>
<td>0</td>
<td colspan="2">1</td>
</tr><tr align="center">
<td colspan="4">
<table border="" width="100%">
<tbody><tr align="center">
<td colspan="4">8</td>
</tr>
<tr align="center">
<td colspan="4"><br>976<br><br></td>
</tr>
<tr align="center">
<td colspan="4">0</td>
</tr>
<tr align="center">
<td colspan="4">0</td>
</tr>
<tr align="center">
<td colspan="4"><br><br>0<br><br><br></td>
</tr>
</tbody></table>
</td>
</tr></tbody></table>
</center>
<br>
<pre> <code>
%h5debug example2.h5 1248 96
New address: 1248
Reading signature at address 1248 (rel)
Symbol Table Node...
Dirty: No
Size of Node (in bytes): 328
Number of Symbols: 1 of 8
Symbol 0:
Name: `Dataset'
Name offset into private heap: 8
Object header address: 976
Dirty: No
Cache info type: Nothing Cached
</code> </pre>
<center>
<table border="" cellpadding="4" width="90%">
<caption align="top">
<strong>'/Dataset' Object Header</strong>
</caption>
<tbody><tr align="center">
<th width="25%">byte</th>
<th width="25%">byte</th>
<th width="25%">byte</th>
<th width="25%">byte</th>
</tr>
<tr align="center">
<td colspan="1"><em>Version:</em> 1</td>
<td colspan="1"><em>Reserved:</em> 0</td>
<td colspan="2"><em>Number of Header Messages:</em> 6</td>
</tr>
<tr align="center">
<td colspan="4"><em>Object Reference Count:</em> 1</td>
</tr>
<tr align="center">
<td colspan="4"><em>Total Object Header Size:</em> 256</td>
</tr>
<!-- Fill Value Header Message -->
<tr align="center">
<td colspan="4">
<table border="" width="100%">
<caption align="top" color="#80FFFF">
<em>Fill Value Header Message</em>
</caption>
<tbody><tr align="center">
<th width="25%"></th>
<th width="25%"></th>
<th width="25%"></th>
<th width="25%"></th>
</tr>
<tr align="center">
<!-- Object Header Message Type -->
<td colspan="2"><em>Message Type:</em> 0x0005</td>
<!-- Object Header Message Length -->
<td colspan="2"><em>Message Data Size:</em> 8</td>
</tr>
<tr align="center">
<!-- Object Header Message Flags -->
<td colspan="1"><em>Flags:</em> 0x01</td>
<!-- Reserved -->
<td colspan="3"><em>Reserved:</em> 0</td>
</tr>
<tr align="center">
<!-- Version -->
<td colspan="1"><em>Version:</em> 1</td>
<!-- Space Allocation Time -->
<td colspan="1"><em>Space Allocation Time:</em> 2 (Late)</td>
<!-- Fill Value Writing Time -->
<td colspan="1"><em>Fill Value Writing Time:</em> 0 (At allocation)</td>
<!-- Fill Value Defined -->
<td colspan="1"><em>Fill Value Defined:</em> 0 (Undefined)</td>
</tr>
<tr align="center">
<!-- Fill Value Datatype Size -->
<td colspan="4"><em>Fill Value Datatype Size:</em> 0 (Use dataset's datatype for fill-value datatype)</td>
</tr>
</tbody></table>
</td>
</tr>
<!-- Datatype Header Message -->
<tr align="center">
<td colspan="4">
<table border="" width="100%">
<caption align="top">
<em>Datatype Header Message</em>
</caption>
<tbody><tr align="center">
<th width="25%"></th>
<th width="25%"></th>
<th width="25%"></th>
<th width="25%"></th>
</tr>
<tr align="center">
<!-- Object Header Message Type -->
<td colspan="2"><em>Message Type:</em> 0x0003</td>
<!-- Object Header Message Length -->
<td colspan="2"><em>Message Data Size:</em> 16</td>
</tr>
<tr align="center">
<!-- Object Header Message Flags -->
<td colspan="1"><em>Flags:</em> 0x01</td>
<!-- Reserved -->
<td colspan="3"><em>Reserved:</em> 0</td>
</tr>
<tr align="center">
<!-- Type Class and Version -->
<td colspan="1">
<table border="" width="100%">
<tbody><tr align="center">
<td width="50%"><em>Version:</em> 0x1</td>
<td><em>Class:</em> 0x0 (Fixed-Point)</td>
</tr>
</tbody></table>
</td>
<!-- Class Bit Field -->
<td colspan="3"><em>Fixed-Point Bit-Field:</em> 0x08 (Little-endian, No padding, Signed)</td>
</tr>
<tr align="center">
<!-- Type Size (in bytes) -->
<td colspan="4"><em>Size:</em> 4</td>
</tr>
<tr align="center">
<!-- Bit Offset -->
<td colspan="2"><em>Bit Offset:</em> 0</td>
<!-- Bit Precision -->
<td colspan="2"><em>Bit Precision:</em> 32</td>
</tr>
<tr align="center">
<!-- Message alignment filler -->
<td colspan="4"><em>Message Alignment Filler:</em> -</td>
</tr>
</tbody></table>
</td>
</tr>
<!-- Dataspace Header Message -->
<tr align="center">
<td colspan="4">
<table border="" width="100%">
<caption align="top">
<em>Dataspace Header Message</em>
</caption>
<tbody><tr align="center">
<th width="25%"></th>
<th width="25%"></th>
<th width="25%"></th>
<th width="25%"></th>
</tr>
<tr align="center">
<!-- Object Header Message Type -->
<td colspan="2"><em>Message Type:</em> 0x0001</td>
<!-- Object Header Message Length -->
<td colspan="2"><em>Message Data Size:</em> 8</td>
</tr>
<tr align="center">
<!-- Object Header Message Flags -->
<td colspan="1"><em>Flags:</em> 0x00</td>
<!-- Reserved -->
<td colspan="3"><em>Reserved:</em> 0</td>
</tr>
<tr align="center">
<!-- Version -->
<td colspan="1"><em>Version:</em> 1</td>
<!-- Rank -->
<td colspan="1"><em>Rank:</em> 0 (Scalar)</td>
<!-- Flags -->
<td colspan="1"><em>Flags:</em> 0x00 (No maximum dimensions, no permutation information)</td>
<!-- Reserved -->
<td colspan="1"><em>Reserved:</em> 0</td>
</tr>
<tr align="center">
<!-- Reserved -->
<td colspan="4"><em>Reserved:</em> 0</td>
</tr>
</tbody></table>
</td>
</tr>
<!-- Layout Header Message -->
<tr align="center">
<td colspan="4">
<table border="" width="100%">
<caption align="top">
<em>Layout Header Message</em>
</caption>
<tbody><tr align="center">
<th width="25%"></th>
<th width="25%"></th>
<th width="25%"></th>
<th width="25%"></th>
</tr>
<tr align="center">
<!-- Object Header Message Type -->
<td colspan="2"><em>Message Type:</em> 0x0008</td>
<!-- Object Header Message Length -->
<td colspan="2"><em>Message Data Size:</em> 24</td>
</tr>
<tr align="center">
<!-- Object Header Message Flags -->
<td colspan="1"><em>Flags:</em> 0x00</td>
<!-- Reserved -->
<td colspan="3"><em>Reserved:</em> 0</td>
</tr>
<tr align="center">
<!-- Version -->
<td colspan="1"><em>Version:</em> 1</td>
<!-- Rank -->
<td colspan="1"><em>Rank:</em> 1 (Dataspace rank+1)</td>
<!-- Class -->
<td colspan="1"><em>Class:</em> 1 (Contiguous)</td>
<!-- Reserved -->
<td colspan="1"><em>Reserved:</em> 0</td>
</tr>
<tr align="center">
<!-- Reserved -->
<td colspan="4"><em>Reserved:</em> 0</td>
</tr>
<tr align="center">
<!-- Address -->
<td colspan="4"><br><em>Address:</em> 0xffffffffffffffff (Undefined)<br><br></td>
</tr>
<tr align="center">
<!-- Layout Dimensions -->
<td colspan="4"><em>Dimension 0 Size:</em> 4 (Datatype size)</td>
</tr>
<tr align="center">
<!-- Message alignment filler -->
<td colspan="4"><em>Message Alignment Filler:</em> -</td>
</tr>
</tbody></table>
</td>
</tr>
<!-- Modification Date & Time Header Message -->
<tr align="center">
<td colspan="4">
<table border="" width="100%">
<caption align="top">
<em>Modification Date &amp; Time Header Message</em>
</caption>
<tbody><tr align="center">
<th width="25%"></th>
<th width="25%"></th>
<th width="25%"></th>
<th width="25%"></th>
</tr>
<tr align="center">
<!-- Object Header Message Type -->
<td colspan="2"><em>Message Type:</em> 0x0012</td>
<!-- Object Header Message Length -->
<td colspan="2"><em>Message Data Size:</em> 8</td>
</tr>
<tr align="center">
<!-- Object Header Message Flags -->
<td colspan="1"><em>Flags:</em> 0x00</td>
<!-- Reserved -->
<td colspan="3"><em>Reserved:</em> 0</td>
</tr>
<tr align="center">
<!-- Version -->
<td colspan="1"><em>Version:</em> 1</td>
<!-- Reserved -->
<td colspan="3"><em>Reserved:</em> 0</td>
</tr>
<tr align="center">
<!-- Modification time -->
<td colspan="4"><em>Seconds Since Epoch:</em> 1052401700 (2003-05-08 08:48:20 CDT)</td>
</tr>
</tbody></table>
</td>
</tr>
<!-- Null Header Message -->
<tr align="center">
<td colspan="4">
<table border="" width="100%">
<caption align="top">
<em>Null Header Message</em>
</caption>
<tbody><tr align="center">
<th width="25%"></th>
<th width="25%"></th>
<th width="25%"></th>
<th width="25%"></th>
</tr>
<tr align="center">
<td colspan="2"><em>Message Type:</em> 0x0000</td>
<td colspan="2"><em>Message Data Size:</em> 144</td>
</tr>
<tr align="center">
<td colspan="1"><em>Flags:</em> 0x00</td>
<td colspan="3"><em>Reserved:</em> 0</td>
</tr>
</tbody></table>
</td>
</tr>
</tbody></table>
</center>
<br>
<pre> <code>
%h5debug example2.h5 976
New address: 976
Reading signature at address 976 (rel)
Object Header...
Dirty: 0
Version: 1
Header size (in bytes): 16
Number of links: 1
Number of messages (allocated): 6 (32)
Number of chunks (allocated): 1 (8)
Chunk 0...
Dirty: 0
Address: 992
Size in bytes: 256
Message 0...
Message ID (sequence number): 0x0005 `fill_new' (0)
Shared: No
Constant: Yes
Raw size in obj header: 8 bytes
Chunk number: 0
Message Information:
Version: 1
Space Allocation Time: Late
Fill Time: On Allocation
Fill Value Defined: Undefined
Size: 0
Data type: <dataset type="">
Message 1...
Message ID (sequence number): 0x0003 data_type(0)
Shared message: No
Constant: Yes
Raw size in obj header: 16 bytes
Chunk number: 0
Message Information:
Type class: integer
Size: 4 bytes
Byte order: little endian
Precision: 32 bits
Offset: 0 bits
Low pad type: zero
High pad type: zero
Sign scheme: 2's comp
Message 2...
Message ID (sequence number): 0x0001 simple_dspace(0)
Shared message: No
Constant: No
Raw size in obj header: 8 bytes
Chunk number: 0
Message Information:
Rank: 0
Message 3...
Message ID (sequence number): 0x0008 layout(0)
Shared message: No
Constant: No
Raw size in obj header: 24 bytes
Chunk number: 0
Message Information:
Data address: UNDEF
Number of dimensions: 1
Size: {4}
Message 4...
Message ID (sequence number): 0x0012 mtime_new(0)
Shared message: No
Constant: No
Raw size in obj header: 8 bytes
Chunk number: 0
Message Information:
Time: 2003-03-05 14:52:00 CST
Message 5...
Message ID (sequence number): 0x0000 null(0)
Shared message: No
Constant: No
Raw size in obj header: 144 bytes
Chunk number: 0
Message Information:
<no info="" for="" this="" message="">
</no></dataset></code> </pre>
<p></p>
</li></ol>
</body></html>