File Format Examples:
This section has several small programs and describes the format of a file
created with each of them.
Example program one - Create an empty file:
 
#include "hdf5.h"
#include 
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>=0);
    /* Close the file */
    ret=H5Fclose(fid);
    assert(ret>=0);
    return(0);
}
 
    
      
	
	  Super Block
	
	
	  | byte | byte | byte | byte | 
	
	  | \211 | 'H' | 'D' | 'F' | 
	
	  | \r | \n | \032 | \n | 
	
	  | 0 | 0 | 0 | 0 | 
	
	  | 0 | 8 | 8 | 0 | 
	
	  | 4 | 16 | 
	
	  | 0x00000003 | 
	
	  | 0 | 
	
          | 0xffffffffffffffff
 
 
 | 
	
	  | ? | 
	
          | 0xffffffffffffffff
 
 
 | 
	
	  | 
		
		  | 0 |  
		  | 928
 
 
 |  
		  | H5G_CACHED_STAB (1) |  
		  | 0 |  
		  |  |  | 
      
    
 
%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
 
    
      
	
	  Root Group Object Header
	
	
	  | byte | byte | byte | byte | 
	
	  | 1 | 0 | 2 | 
	
	  | 1 | 
	
	  | 32 | 
	
	  | 0x0011 | 16 | 
	
	  | 0x01 | 0 | 
	
	  |  | 
	
	  | 0 | 0 | 
	
	  | 0x00 | 0 | 
      
    
 
%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:
      
 
	    
	      
		
		  Root Group Local Heap
		
		
		  | byte | byte | byte | byte | 
		
                  | 'H' | 'E' | 'A' | 'P' | 
		
		  | 0 | 
		
		  | 256 | 
		
		  | 8 | 
		
		  | 128 | 
	      
	    
 
%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: __ __ __ __ __ __ __ __  __ __ __ __ __ __ __ __
 
	    
	      
		
		  Root Group B-tree
		
		
		  | byte | byte | byte | byte | 
                  | 'T' | 'R' | 'E' | 'E' | 
		  | 0 | 0 | 0 | 
		  | 0xffffffffffffffff
 
 
 | 
		  | 0xffffffffffffffff
 
 
 | 
	    
 
%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)
 
Example program two - Create a file with a single dataset in it:
 
#include "hdf5.h"
#include 
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>=0);
    /* Create a scalar dataspace for the dataset */
    sid=H5Screate(H5S_SCALAR);
    assert(sid>=0);
    /* Create a trivial dataset */
    did=H5Dcreate(fid, "Dataset", H5T_NATIVE_INT, sid, H5P_DEFAULT);
    assert(did>=0);
    /* Close the dataset */
    ret=H5Dclose(did);
    assert(ret>=0);
    /* Close the dataspace */
    ret=H5Sclose(sid);
    assert(ret>=0);
    /* Close the file */
    ret=H5Fclose(fid);
    assert(ret>=0);
    return(0);
}
 
    
      
	
	  Super Block
	
	
	  | byte | byte | byte | byte | 
	
	  | \211 | 'H' | 'D' | 'F' | 
	
	  | \r | \n | \032 | \n | 
	
	  | 0 | 0 | 0 | 0 | 
	
	  | 0 | 8 | 8 | 0 | 
	
	  | 4 | 16 | 
	
	  | 0x00000003 | 
	
	  | 0 | 
	
          | 0xffffffffffffffff
 
 
 | 
	
	  | ? | 
	
          | 0xffffffffffffffff
 
 
 | 
	
	  | 
		
		  | 0 |  
		  | 928
 
 
 |  
		  | H5G_CACHED_STAB (1) |  
		  | 0 |  
		  |  |  | 
      
    
 
%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
 
    
      
	
	  Root Group Object Header
	
	
	  | byte | byte | byte | byte | 
	
	  | 1 | 0 | 2 | 
	
	  | 1 | 
	
	  | 32 | 
	
	  | 0x0011 | 16 | 
	
	  | 0x01 | 0 | 
	
	  |  | 
	
	  | 0 | 0 | 
	
	  | 0x00 | 0 | 
      
    
 
%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:
      
 
	    
	      
		
		  Root Group Local Heap
		
		
		  | byte | byte | byte | byte | 
		
                  | 'H' | 'E' | 'A' | 'P' | 
		
		  | 0 | 
		
		  | 256 | 
		
		  | 16 | 
		
		  | 128 | 
	      
	    
 
%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: __ __ __ __ __ __ __ __  __ __ __ __ __ __ __ __
 
	    
	      
		
		  Root Group B-tree
		
		
		  | byte | byte | byte | byte | 
                  | 'T' | 'R' | 'E' | 'E' | 
		  | 0 | 0 | 1 | 
		  | 0xffffffffffffffff
 
 
 | 
		  | 0xffffffffffffffff
 
 
 | 
		  | 0
 
 
 | 
		  | 1248
 
 
 | 
		  | 8
 
 
 | 
	    
 
%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
 
	    
	      
		
		  Root Group B-tree Symbol Table Node
		
		
		  | byte | byte | byte | byte | 
                  | 'S' | 'N' | 'O' | 'D' | 
		  | 1 | 0 | 1 | 
		  |  | 
	    
 
%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
 
    
      
	
	  '/Dataset' Object Header
	
	
	  | byte | byte | byte | byte | 
	
	  | Version: 1 | Reserved: 0 | Number of Header Messages: 6 | 
	
	  | Object Reference Count: 1 | 
	
	  | Total Object Header Size: 256 | 
        
        | 
            
              Fill Value Header Message
            
            
              |  |  |  |  |  
            
              | Message Type: 0x0005 | Message Data Size: 8 |  
            
              | Flags: 0x01 | Reserved: 0 |  
            
              | Version: 1 | Space Allocation Time: 2 (Late) | Fill Value Writing Time: 0 (At allocation) | Fill Value Defined: 0 (Undefined) |  
            
              | Fill Value Datatype Size: 0 (Use dataset's datatype for fill-value datatype) |  | 
        
        | 
            
              Datatype Header Message
            
            
              |  |  |  |  |  
            
              | Message Type: 0x0003 | Message Data Size: 16 |  
            
              | Flags: 0x01 | Reserved: 0 |  
            
              | 
                
                  | Version: 0x1 | Class: 0x0 (Fixed-Point) |  | Fixed-Point Bit-Field: 0x08 (Little-endian, No padding, Signed) |  
            
              | Size: 4 |  
            
              | Bit Offset: 0 | Bit Precision: 32 |  
            
              | Message Alignment Filler: - |  | 
        
        | 
            
              Dataspace Header Message
            
            
              |  |  |  |  |  
            
              | Message Type: 0x0001 | Message Data Size: 8 |  
            
              | Flags: 0x00 | Reserved: 0 |  
            
              | Version: 1 | Rank: 0 (Scalar) | Flags: 0x00 (No maximum dimensions, no permutation information) | Reserved: 0 |  
            
              | Reserved: 0 |  | 
        
        | 
            
              Layout Header Message
            
            
              |  |  |  |  |  
            
              | Message Type: 0x0008 | Message Data Size: 24 |  
            
              | Flags: 0x00 | Reserved: 0 |  
            
              | Version: 1 | Rank: 1 (Dataspace rank+1) | Class: 1 (Contiguous) | Reserved: 0 |  
            
              | Reserved: 0 |  
            
              | Address: 0xffffffffffffffff (Undefined)
 
 
 |  
            
              | Dimension 0 Size: 4 (Datatype size) |  
            
              | Message Alignment Filler: - |  | 
        
        | 
            
              Modification Date & Time Header Message
            
            
              |  |  |  |  |  
            
              | Message Type: 0x0012 | Message Data Size: 8 |  
            
              | Flags: 0x00 | Reserved: 0 |  
            
              | Version: 1 | Reserved: 0 |  
            
              | Seconds Since Epoch: 1052401700 (2003-05-08 08:48:20 CDT) |  | 
        
        | 
            
              Null Header Message
            
            
              |  |  |  |  |  
              | Message Type: 0x0000 | Message Data Size: 144 |  
              | Flags: 0x00 | Reserved: 0 |  | 
      
    
 
%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:                                   
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: