Attribute Examples: H5Acreate2 example: Show how to create an attribute for a dataset and a group ---------------- { hid_t file; hid_t group; hid_t dataset; hid_t attr; hid_t dataspace; int32 attr_data; int rank; size_t dimsf[2]; /* Open the file */ file=H5Fopen("example.h5", H5F_ACC_RDWR, H5P_DEFAULT); /* Describe the size of the array and create the data space */ rank=2; dimsf[0] = H5S_UNLIMITED; dimsf[1] = H5S_UNLIMITED; dataspace = H5Screate_simple(rank, dimsf, NULL); /* Create a dataset */ dataset = H5Dcreate2(file, "Dataset1", H5T_UINT8, dataspace, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT); /* Create an attribute for the dataset */ attr = H5Acreate2(dataset, "Attr1", H5T_INT32, H5S_SCALAR, H5P_DEFAULT, H5P_DEFAULT); /* Write attribute information */ H5Awrite(attr, H5T_INT32, &attr_data); /* Close attribute */ H5Aclose(attr); /* Close dataset */ H5Dclose(dataset); /* Create a group */ group = H5Gcreate2(file, "/Group One", H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT); /* Create an attribute for the dataset */ attr = H5Acreate2(group, "Attr1", H5T_INT32, H5S_SCALAR, H5P_DEFAULT, H5P_DEFAULT); /* Write attribute information */ H5Awrite(attr, H5T_INT32, &attr_data); /* Close attribute */ H5Aclose(attr); /* Close the group */ H5Gclose(group); /* Close file */ H5Fclose(file); } H5Aiterate example: Print all the names of attributes of a dataset, without any buffers. --------------------- herr_t print_names (hid_t loc_id, const char *name, void *opdata) { puts (name); return 0; } { H5Aiterate (dataset_or_group_id, NULL, print_names, NULL); } H5Aread Example: Attach to an attribute of a dataset and read in attr. data ---------------- { hid_t file; hid_t dataset; hid_t attr; int32 attr_data; /* Open the file */ file=H5Fopen("example.h5", H5F_ACC_RDWR, H5P_DEFAULT); /* Open the dataset */ dataset=H5Dopen2(file, "Dataset1", H5P_DEFAULT); /* Get the OID of the attribute */ attr=H5Aopen(dataset, "Attr1", H5P_DEFAULT); /* Read attribute */ H5Aread(attr,H5T_INT32,attr_data); /* Close attribute dataset */ H5Aclose(attr); /* Close first dataset */ H5Dclose(dataset); /* Close file */ H5Fclose(file); } H5Alink Example: Shows how to share an attribute between two datasets. ---------------- { hid_t file; hid_t dataset1, dataset2; hid_t attr; /* Open the file */ file=H5Fopen("example.h5", H5F_ACC_RDWR, H5P_DEFAULT); /* Open the first dataset */ dataset1=H5Dopen2(file, "Dataset1", H5P_DEFAULT); /* Open the first dataset */ dataset2=H5Dopen2(file, "Dataset2", H5P_DEFAULT); /* Get the OID of the attribute */ attr=H5Aopen(dataset1, "Foo", H5P_DEFAULT); /* * Create an attribute in the second dataset to the attribute in dataset1, * changing the name of the attribute information in dataset2. */ H5Alink(dataset2, attr, "Bar"); /* Close attribute dataset */ H5Aclose(attr); /* Close datasets */ H5Dclose(dataset1); H5Dclose(dataset2); /* Close file */ H5Fclose(file); }