If out_file.h5 is given, a new file is created with the user_block followed by the contents of in_file.h5. In this case, infile.h5 is unchanged.
If out_file.h5 is not specified, the user_block is added to in_file.h5.
If in_file.h5 already has a user block, the contents of user_block will be added to the end of the existing user block, and the file shifted to the next boundary. If --clobber is set, any existing user block will be overwritten.
h5jam -u mytext.txt -i file.h5 -o newfile.h5
Add text in file mytext.txt to front of HDF5 dataset, file.h5.
h5jam -u mytext.txt -i file.h5
Overwrite the user block (if any) in file.h5 with the contents of mytext.txt.
The most efficient way to create a user block is to create the file with a user block (see H5Pset_user_block), and write the user block data into that space from a program.
The user block is completely opaque to the HDF5 library and to the h5jam and h5unjam tools. The user block is simply read or written as a string of bytes, which could be text or any kind of binary data. It is up to the user to know what the contents of the user block means and how to process it.
When the user block is extracted, all the data is written to the output, including any padding or unwritten data.