Help us improve by taking our short survey: https://www.hdfgroup.org/website-survey/

| HDF5 Last Updated on 2026-07-28 The HDF5 Field Guide

Loading...
Searching...
No Matches
Property Lists (H5P)

## Detailed Description

Use the functions in this module to manage HDF5 property lists and property list classes. HDF5 property lists are the main vehicle to configure the behavior of HDF5 API functions.

Typically, property lists are created by instantiating one of the built-in or user-defined property list classes. After adding suitable properties, property lists are used when opening or creating HDF5 items, or when reading or writing data. Property lists can be modified by adding or changing properties. Property lists are deleted by closing the associated handles.

Property List Class Root

Property list class root functions (H5P)
Function | Purpose
--- | ---
H5Pclose | Terminates access to a property list.
H5Pcopy | Copies an existing property list to create a new property list.
H5Pcreate | Creates a new property list as an instance of a property list class.
H5Pencode/H5Pdecode | Encodes/ecodes property list into/from a binary object buffer.
H5Pget_class | Returns the property list class identifier for a property list

Property List Class Root

Property list class root (Advanced) functions (H5P)
Function | Purpose
--- | ---
H5Pclose_class | Closes an existing property list class.
H5Pcopy_prop | Copies a property from one list or class to another.
H5Pcreate_class | Creates a new property list class.
H5Pequal | Compares two property lists or classes for equality.
H5Pexist | Queries whether a property name exists in a property list or class.
H5Pget_class_name | Retrieves the name of a class.
H5Pget_class_parent | Retrieves the parent class of a property class.
H5Pget_nprops | Queries the number of properties in a property list or class.
H5Pget_size | Queries the size of a property value in bytes.
H5Pinsert | Registers a temporary property with a property list.
H5Pisa_class | Determines whether a property list is a member of a class.
H5Piterate | Iterates over properties in a property class or list
H5Pregister/H5Punregister | Registers/removes a permanent property with/from a property list class
H5Premove | Removes a property from a property list.
H5Pset/H5Pget | Sets/queries a property list value

Property List Class Root / Object Creation Properties / Group Creation Properties

File creation property list functions (H5P)
Function | Purpose
--- | ---
H5Pset_userblock/H5Pget_userblock | Sets/retrieves size of userblock.
H5Pset_sizes/H5Pget_sizes | Sets/retrieves byte size of offsets and lengths used to address objects in HDF5 file.
H5Pset_sym_k/H5Pget_sym_k | Sets/retrieves size of parameters used to control symbol table nodes.
H5Pset_istore_k/H5Pget_istore_k | Sets/retrieves size of parameter used to control B-trees for indexing chunked datasets.
H5Pset_file_space_page_size/H5Pget_file_space_page_size | Sets or retrieves the file space page size used in paged aggregation and paged buffering.
H5Pset_file_space_strategy/H5Pget_file_space_strategy | Sets or retrieves the file space handling strategy, the persisting free-space and the free-space section size.
H5Pset_shared_mesg_nindexes/H5Pget_shared_mesg_nindexes | Sets or retrieves number of shared object header message indexes in file creation property list.
H5Pset_shared_mesg_index | Configures the specified shared object header message index.
H5Pget_shared_mesg_index | Retrieves the configuration settings for a shared message index.
H5Pset_shared_mesg_phase_change/H5Pget_shared_mesg_phase_change | Sets or retrieves shared object header message storage phase change thresholds.
H5Pget_version |

Property List Class Root

File access property list functions (H5P)
Function | Purpose
--- | ---
H5Pset_alignment/H5Pget_alignment | Sets/retrieves alignment properties.
H5Pset_cache/H5Pget_cache | Sets/retrieves metadata cache and raw data chunk cache parameters.
H5Pset_core_write_tracking/H5Pget_core_write_tracking | Sets/retrieves write tracking information for core driver.
H5Pset_elink_file_cache_size/H5Pget_elink_file_cache_size | Sets/retrieves the size of the external link open file cache from the specified file access property list.
H5Pset_evict_on_close/H5Pget_evict_on_close | Set/get the file access property list setting that determines whether an HDF5 object will be evicted from the library's metadata cache when it is closed.
H5Pset_gc_references/H5Pget_gc_references | Sets/retrieves garbage collecting references flag.
H5Pset_family_offset | Sets offset property for low-level access to a file in a family of files.
H5Pget_family_offset | Retrieves a data offset from the file access property list.
H5Pset_fclose_degree/H5Pget_fclose_degree | Sets/retrieves file close degree property.
H5Pset_file_image | Sets an initial file image in a memory buffer.
H5Pget_file_image | Retrieves a copy of the file image designated as the initial content and structure of a file.
H5Pset_file_image_callbacks/H5Pget_file_image_callbacks | Sets/gets the callbacks for working with file images.
H5Pset_file_locking/H5Pget_file_locking | Sets/retrieves file locking property values.
H5Pset_meta_block_size/H5Pget_meta_block_size | Sets the minimum metadata blocksize or retrieves the current metadata block size setting.
H5Pset_metadata_read_attempts/H5Pget_metadata_read_attempts | Sets/gets the number of read attempts from a file access property list.
H5Pset_mdc_config/H5Pget_mdc_config | Set/get the initial metadata cache configuration in the indicated file access property list.
H5Pset_mdc_image_config/H5Pget_mdc_image_config | Set/get the metadata cache image option for a file access property list.
H5Pset_mdc_log_options/H5Pget_mdc_log_options | Set/get the metadata cache logging options.
H5Pset_multi_type/H5Pget_multi_type | Sets/gets the type of data property for the MULTI driver.
H5Pset_object_flush_cb/H5Pget_object_flush_cb | Set/get the object flush property values from the file access property list.
H5Pset_page_buffer_size/H5Pget_page_buffer_size | Set/get the maximum size for the page buffer.
H5Pset_sieve_buf_size/H5Pget_sieve_buf_size | Sets/retrieves maximum size of data sieve buffer.
H5Pset_libver_bounds | Sets bounds on library versions, and indirectly format versions, to be used when creating objects.
H5Pget_libver_bounds | Retrieves library version bounds settings that indirectly control the format versions used when creating objects.
H5Pset_small_data_block_size | Sets the size of a contiguous block reserved for small data.
H5Pget_small_data_block_size | Retrieves the current small data block size setting.
H5Pset_vol | Sets the file VOL connector for a file access property list.
H5Pget_vol_cap_flags | Retrieves the capability flags for the VOL connector that will be used with a file access property list.
H5Pget_vol_id | Retrieves the identifier of the current VOL connector.
H5Pget_vol_info | Retrieves a copy of the VOL information for a connector.
H5Pset_mpi_params/H5Pget_mpi_params | Sets/retrieves the MPI communicator and info.
H5Pset_coll_metadata_write/H5Pget_coll_metadata_write | Sets/retrieves metadata write mode setting.

File driver property list functions (H5P)
Function | Purpose
--- | ---
H5Pset_driver | Sets a file driver.
H5Pget_driver | Returns the identifier for the driver used to create a file.
H5Pget_driver_info | Returns a pointer to file driver information.
H5Pset_driver_by_name | Sets a file driver according to a given driver name.
H5Pset_driver_by_value | Sets a file driver according to a given driver value.
H5Pget_driver_config_str | Retrieves a string representation of the configuration for the driver.
H5Pset_fapl_core/H5Pget_fapl_core | Sets the driver for buffered memory files (in RAM) or retrieves information regarding the driver.
H5Pset_fapl_direct/H5Pget_fapl_direct | Sets up use of the direct I/O driver or retrieves the direct I/O driver settings.
H5Pset_fapl_family/H5Pget_fapl_family | Sets driver for file families, designed for systems that do not support files larger than 2 gigabytes, or retrieves information regarding driver.
H5Pset_fapl_hdfs/H5Pget_fapl_hdfs | .
H5Pset_fapl_ioc/H5Pget_fapl_ioc | Modifies/queries the file driver properties of the I/O concentrator driver.
H5Pset_fapl_log | The logging driver is a clone of the standard SEC2 (H5FD_SEC2) driver with additional facilities for logging metrics and activity to a file.
H5Pset_fapl_mirror/H5Pget_fapl_mirror | Modifies/queries the file driver properties of the mirror driver.
H5Pset_fapl_mpio/H5Pget_fapl_mpio | Sets driver for files on parallel file systems (MPI I/O) or retrieves information regarding the driver.
H5Pset_fapl_mpiposix/H5Pget_fapl_mpiposix | No longer available.
H5Pset_fapl_multi/H5Pget_fapl_multi | Sets driver for multiple files, separating categories of metadata and raw data, or retrieves information regarding driver.
H5Pset_fapl_onion/H5Pget_fapl_onion | Modifies/queries the file driver properties of the onion driver.
H5Pset_fapl_ros3/H5Pget_fapl_ros3 | Modifies/queries the file driver properties of the ros3 driver.
H5Pset_fapl_sec2 | Sets driver for unbuffered permanent files or retrieves information regarding driver.
H5Pset_fapl_split | Sets driver for split files, a limited case of multi driver with one metadata file and one raw data file.
H5Pset_fapl_splitter/H5Pget_fapl_splitter | Modifies/queries the file driver properties of the splitter driver.
H5Pset_fapl_stdio | Sets driver for buffered permanent files.
H5Pset_fapl_subfiling/H5Pget_fapl_subfiling | Modifies/queries the file driver properties of the subfiling driver.
H5Pset_fapl_windows | Sets the Windows I/O driver.
H5Pset_multi_type | Specifies type of data to be accessed via the MULTI driver enabling more direct access.
H5Pget_multi_type | Retrieves type of data property for MULTI driver.

Property List Class Root

Link access property list functions (H5P)
Function | Purpose
--- | ---
H5Pset_elink_cb/H5Pget_elink_cb | Sets/gets the external link traversal callback function.
H5Pset_elink_acc_flags/H5Pget_elink_acc_flags | Sets/gets the external link traversal file access flag.
H5Pset_elink_fapl/H5Pget_elink_fapl | Sets/gets a file access property list for use in accessing a file pointed to by an external link
H5Pset_elink_prefix/H5Pget_elink_prefix | Sets/gets prefix to be applied to external link paths.
H5Pset_nlinks/H5Pget_nlinks | Sets/gets maximum number of soft or user-defined link traversals.

Property List Class Root / Object Creation Properties

Dataset creation property list functions (H5P)
Function | Purpose
--- | ---
H5Pset_layout | Sets the type of storage used to store the raw data for a dataset.
H5Pget_layout | Returns the layout of the raw data for a dataset.
H5Pset_chunk | Sets the size of the chunks used to store a chunked layout dataset.
H5Pget_chunk | Retrieves the size of chunks for the raw data of a chunked layout dataset.
H5Pset_chunk_opts/H5Pget_chunk_opts | Sets/gets the edge chunk option setting from a dataset creation property list.
H5Pset_deflate | Sets compression method and compression level.
H5Pset_fill_value | Sets the fill value for a dataset.
H5Pget_fill_value | Retrieves a dataset fill value.
H5Pfill_value_defined | Determines whether the fill value is defined.
H5Pset_fill_time | Sets the time when fill values are written to a dataset.
H5Pget_fill_time | Retrieves the time when fill value are written to a dataset.
H5Pset_alloc_time | Sets the timing for storage space allocation.
H5Pget_alloc_time | Retrieves the timing for storage space allocation.
H5Pset_filter | Adds a filter to the filter pipeline.
H5Pall_filters_avail | Verifies that all required filters are available.
H5Pget_nfilters | Returns the number of filters in the pipeline.
H5Pget_filter | Returns information about a filter in a pipeline. The C function is a macro: See also API Compatibility Macros.
H5Pget_filter_by_id | Returns information about the specified filter. The C function is a macro: See also API Compatibility Macros.
H5Pmodify_filter | Modifies a filter in the filter pipeline.
H5Premove_filter | Deletes one or more filters in the filter pipeline.
H5Pset_fletcher32 | Sets up use of the Fletcher32 checksum filter.
H5Pset_nbit | Sets up use of the n-bit filter.
H5Pset_scaleoffset | Sets up use of the scale-offset filter.
H5Pset_shuffle | Sets up use of the shuffle filter.
H5Pset_szip | Sets up use of the Szip compression filter.
H5Pset_external | Adds an external file to the list of external files.
H5Pget_external_count | Returns the number of external files for a dataset.
H5Pget_external | Returns information about an external file.
H5Pset_char_encoding | Sets the character encoding used to encode a string. Use to set ASCII or UTF-8 character encoding for object names.
H5Pget_char_encoding | Retrieves the character encoding used to create a string.
H5Pset_virtual | Sets the mapping between virtual and source datasets.
H5Pget_virtual_count | Gets the number of mappings for the virtual dataset.
H5Pget_virtual_dsetname | Gets the name of a source dataset used in the mapping.
H5Pget_virtual_filename | Gets the filename of a source dataset used in the mapping.
H5Pget_virtual_srcspace | Gets a dataspace identifier for the selection within the source dataset used in the mapping.
H5Pget_virtual_vspace | Gets a dataspace identifier for the selection within the virtual dataset used in the mapping.
H5Pset_dset_no_attrs_hint/H5Pget_dset_no_attrs_hint | Sets/gets the flag to create minimized dataset object headers.

Property List Class Root / Link Access Properties

Dataset access property list functions (H5P)
Function | Purpose
--- | ---
H5Pset_buffer | Sets type conversion and background buffers.
H5Pget_buffer | Reads buffer settings.
H5Pset_append_flush/H5Pget_append_flush | Sets/gets the values of the append property that is set up in the dataset access property list.
H5Pset_chunk_cache/H5Pget_chunk_cache | Sets/gets the raw data chunk cache parameters.
H5Pset_efile_prefix/H5Pget_efile_prefix | Sets/gets the prefix for external raw data storage files as set in the dataset access property list.
H5Pset_virtual_prefix/H5Pget_virtual_prefix | Sets/gets the prefix to be applied to VDS source file paths.
H5Pset_virtual_printf_gap/H5Pget_virtual_printf_gap | Sets/gets the maximum number of missing source files and/or datasets with the printf-style names when getting the extent for an unlimited virtual dataset.
H5Pset_virtual_view/H5Pget_virtual_view | Sets/gets the view of the virtual dataset (VDS) to include or exclude missing mapped elements.
H5Pset_virtual_spatial_tree/H5Pget_virtual_spatial_tree | Sets/gets the flag to use spatial trees when searching many VDS mappings

Property List Class Root / Object Creation Properties

Group creation property list functions (H5P)
Function | Purpose
--- | ---
H5Pall_filters_avail | Verifies that all required filters are available.
H5Pget_filter | Returns information about a filter in a pipeline. The C function is a macro: See also API Compatibility Macros.
H5Pget_filter_by_id | Returns information about the specified filter. The C function is a macro: See also API Compatibility Macros.
H5Pget_nfilters | Returns the number of filters in the pipeline.
H5Pmodify_filter | Modifies a filter in the filter pipeline.
H5Premove_filter | Deletes one or more filters in the filter pipeline.
H5Pset_deflate | Sets the deflate (GNU gzip) compression method and compression level.
H5Pset_filter | Adds a filter to the filter pipeline.
H5Pset_fletcher32 | Sets up use of the Fletcher32 checksum filter.
H5Pset_local_heap_size_hint/H5Pget_local_heap_size_hint | Sets/gets the anticipated maximum size of a local heap.
H5Pset_link_phase_change | Sets the parameters for conversion between compact and dense groups.
H5Pget_link_phase_change | Queries the settings for conversion between compact and dense groups.
H5Pset_est_link_info | Sets estimated number of links and length of link names in a group.
H5Pget_est_link_info | Queries data required to estimate required local heap or object header size.
H5Pset_nlinks | Sets maximum number of soft or user-defined link traversals.
H5Pget_nlinks | Retrieves the maximum number of link traversals.
H5Pset_link_creation_order | Sets creation order tracking and indexing for links in a group.
H5Pget_link_creation_order | Queries whether link creation order is tracked and/or indexed in a group.
H5Pset_char_encoding | Sets the character encoding used to encode a string. Use to set ASCII or UTF-8 character encoding for object names.
H5Pget_char_encoding | Retrieves the character encoding used to create a string.

Property List Class Root / Link Access Properties

Group access property list functions (H5P)
Function | Purpose
--- | ---
H5Pset_all_coll_metadata_ops/H5Pget_all_coll_metadata_ops | Sets/gets metadata I/O mode for read operations

Property List Class Root

Object creation property list functions (H5P)
Function | Purpose
--- | ---
H5Pset_attr_creation_order/H5Pget_attr_creation_order | Sets/gets tracking and indexing of attribute creation order.
H5Pset_attr_phase_change/H5Pget_attr_phase_change | Sets/gets attribute storage phase change thresholds
H5Pset_filter/H5Pget_filter | Adds/gets a filter to/from the filter pipeline.
H5Pget_filter_by_id | Returns information about a filter in a pipeline.
H5Pget_nfilters | Returns information about the specified filter.
H5Pset_obj_track_times/H5Pget_obj_track_times | Sets/gets the recording of times associated with an object.
H5Pmodify_filter | Modifies a filter in the filter pipeline.
H5Premove_filter | Delete one or more filters in the filter pipeline.
H5Pset_fletcher32 | Sets up use of the Fletcher32 checksum filter.

Property List Class Root

Object copy property list functions (H5P)
Function | Purpose
--- | ---
H5Padd_merge_committed_dtype_path | Adds a path to the list of paths that will be searched in the destination file for a matching committed datatype.
H5Pfree_merge_committed_dtype_paths | Clears the list of paths stored in the object copy property list.
H5Pset_copy_object/H5Pget_copy_object | Sets/gets the properties to be used when an object is copied.
H5Pset_mcdt_search_cb/H5Pget_mcdt_search_cb | Sets/gets the callback function that H5Ocopy() will invoke before searching for a matching committed datatype.

Property List Class Root

String creation property list functions (H5P)
Function | Purpose
--- | ---
H5Pset_char_encoding/H5Pget_char_encoding | Sets/gets the character encoding used to encode link and attribute names.

Property List Class Root / String Creation Properties

Link creation property list functions (H5P)
Function | Purpose
--- | ---
H5Pset_create_intermediate_group/H5Pget_create_intermediate_group | Specifies/retrieves whether to create missing intermediate groups.

Property List Class Root / String Creation Properties

Attribute creation property list functions (H5P)
Function | Purpose
--- | ---
H5Pset_char_encoding/H5Pget_char_encoding | Sets/gets the character encoding used to encode link and attribute names.

## Topics
| Dataset Transfer Properties
| File Access Properties
| File Mount Properties
| Link Access Properties
| Map Creation Properties
| Object Copy Properties
| Object Creation Properties
| Property List Class Root
| Property List Class Root (Advanced)
| String Creation Properties
| VOL Data Mapping Properties