summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authormattjala <124107509+mattjala@users.noreply.github.com>2024-01-26 20:30:12 (GMT)
committerGitHub <noreply@github.com>2024-01-26 20:30:12 (GMT)
commit1bea9e6100fd7c92caf31eba96766aa8ec4f356c (patch)
treeb5c494388fa33aab6378002801647f297cd9fd3a
parenta1d3e486e6d7a9fc940d98d4c68acb411cdf8a0b (diff)
downloadhdf5-1bea9e6100fd7c92caf31eba96766aa8ec4f356c.zip
hdf5-1bea9e6100fd7c92caf31eba96766aa8ec4f356c.tar.gz
hdf5-1bea9e6100fd7c92caf31eba96766aa8ec4f356c.tar.bz2
Document that fileno is same for all handles (#3963)
-rw-r--r--src/H5Fpublic.h7
-rw-r--r--src/H5Opublic.h22
2 files changed, 19 insertions, 10 deletions
diff --git a/src/H5Fpublic.h b/src/H5Fpublic.h
index 6db1c71..45580ac 100644
--- a/src/H5Fpublic.h
+++ b/src/H5Fpublic.h
@@ -741,6 +741,13 @@ H5_DLL herr_t H5Fget_intent(hid_t file_id, unsigned *intent);
* file identifier \p file_id and the pointer \p fnumber to the file
* number.
*
+ * This file number is the same for all open instances of the same
+ * file, as long as 1. The active VFD implements the file comparison operator,
+ * and 2. The current filesystem is able to determine if the same file is opened more
+ * than once. If these conditions are not met, it is the application's
+ * responsibility to avoid opening multiple handles into the same file,
+ * which results in undefined behavior.
+ *
* \since 1.12.0
*
*/
diff --git a/src/H5Opublic.h b/src/H5Opublic.h
index f35bdd0..cee0660 100644
--- a/src/H5Opublic.h
+++ b/src/H5Opublic.h
@@ -143,15 +143,16 @@ typedef struct H5O_hdr_info_t {
* (For H5Oget_info(), H5Oget_info_by_name(), H5Oget_info_by_idx() version 3)
*/
typedef struct H5O_info2_t {
- unsigned long fileno; /**< File number that object is located in */
- H5O_token_t token; /**< Token representing the object */
- H5O_type_t type; /**< Basic object type (group, dataset, etc.) */
- unsigned rc; /**< Reference count of object */
- time_t atime; /**< Access time */
- time_t mtime; /**< Modification time */
- time_t ctime; /**< Change time */
- time_t btime; /**< Birth time */
- hsize_t num_attrs; /**< Number of attributes attached to object */
+ unsigned long
+ fileno; /**< File number that object is located in. Constant across multiple opens of the same file */
+ H5O_token_t token; /**< Token representing the object */
+ H5O_type_t type; /**< Basic object type (group, dataset, etc.) */
+ unsigned rc; /**< Reference count of object */
+ time_t atime; /**< Access time */
+ time_t mtime; /**< Modification time */
+ time_t ctime; /**< Change time */
+ time_t btime; /**< Birth time */
+ hsize_t num_attrs; /**< Number of attributes attached to object */
} H5O_info2_t;
//! <!-- [H5O_info2_t_snip] -->
@@ -1717,7 +1718,8 @@ typedef struct H5O_stat_t {
* H5Oget_info_by_idx() versions 1 & 2.)
*/
typedef struct H5O_info1_t {
- unsigned long fileno; /**< File number that object is located in */
+ unsigned long
+ fileno; /**< File number that object is located in. Constant across multiple opens of the same file */
haddr_t addr; /**< Object address in file */
H5O_type_t type; /**< Basic object type (group, dataset, etc.) */
unsigned rc; /**< Reference count of object */