diff options
Diffstat (limited to 'doc/html/Tutor/examples/h5_reference.c')
-rw-r--r-- | doc/html/Tutor/examples/h5_reference.c | 146 |
1 files changed, 0 insertions, 146 deletions
diff --git a/doc/html/Tutor/examples/h5_reference.c b/doc/html/Tutor/examples/h5_reference.c deleted file mode 100644 index a69afe2..0000000 --- a/doc/html/Tutor/examples/h5_reference.c +++ /dev/null @@ -1,146 +0,0 @@ - /* - * This program illustrates how references to the objects can be used. - * Program creates two datasets in the file. It also creates the third - * dataset, and references to the first two datasets are stored in it. - * Program reopens the file and reads dataset with the references. - * References are used to open first two datasets and read datatspace - * and datatype information about them. - * - */ - -#include<hdf5.h> - -#define FILE "refere.h5" - -int -main(void) { - hid_t fid; /* File, datasets, datatypes and */ - hid_t did_a, sid_a; /* dataspaces identifiers for three */ - hid_t did_b, tid_b, sid_b; /* datasets. */ - hid_t did_r, tid_r, sid_r; - herr_t status; - - hobj_ref_t *wbuf; /* buffer to write to disk */ - hobj_ref_t *rbuf; /* buffer to read from disk */ - - - hsize_t dim_r[1]; - hsize_t dim_a[1]; - hsize_t dim_b[2]; - - herr_t ret; /* return values */ - - /* - * Create a file using default properties. - */ - fid = H5Fcreate(FILE, H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT); - - /* - * Create dataset "A" in the file. - */ - dim_a[0] = 5; - sid_a = H5Screate_simple(1, dim_a, NULL); - did_a = H5Dcreate(fid, "A", H5T_NATIVE_INT, sid_a, H5P_DEFAULT); - - /* - * Create dataset "B" in the file. - */ - dim_b[0] = 2; - dim_b[1] = 6; - sid_b = H5Screate_simple(2, dim_b, NULL); - did_b = H5Dcreate(fid, "B", H5T_NATIVE_FLOAT, sid_b, H5P_DEFAULT); - - /* - * Create dataset "R" to store references to the datasets "A" and "B". - */ - dim_r[0] = 2; - sid_r = H5Screate_simple(1, dim_r, NULL); - tid_r = H5Tcopy(H5T_STD_REF_OBJ); - did_r = H5Dcreate(fid, "R", tid_r, sid_r, H5P_DEFAULT ); - - /* - * Allocate write and read buffers. - */ - wbuf = malloc(sizeof(hobj_ref_t)*2); - rbuf = malloc(sizeof(hobj_ref_t)*2); - - /* - * Create references to the datasets "A" and "B" - * and store them in the wbuf. - */ - H5Rcreate(&wbuf[0], fid, "A", H5R_OBJECT, -1); - H5Rcreate(&wbuf[1], fid, "B", H5R_OBJECT, -1); - - /* - * Write dataset R using default transfer properties. - */ - status = H5Dwrite(did_r, H5T_STD_REF_OBJ, H5S_ALL, H5S_ALL, - H5P_DEFAULT, wbuf); - - /* - * Close all objects. - */ - H5Sclose(sid_a); - H5Dclose(did_a); - - H5Sclose(sid_b); - H5Dclose(did_b); - - H5Tclose(tid_r); - H5Sclose(sid_r); - H5Dclose(did_r); - - H5Fclose(fid); - - /* - * Reopen the file. - */ - fid = H5Fopen(FILE, H5F_ACC_RDWR, H5P_DEFAULT); - - /* - * Open and read dataset "R". - */ - did_r = H5Dopen(fid, "R"); - status = H5Dread(did_r, H5T_STD_REF_OBJ, H5S_ALL, H5S_ALL, - H5P_DEFAULT, rbuf); - - /* - * Open dataset A using reference to it. - */ - did_a = H5Rdereference(did_r, H5R_OBJECT, &rbuf[0]); - - /* - * Get rank of the dataset "A" - */ - - printf("\n"); - sid_a = H5Dget_space(did_a); - ret = H5Sget_simple_extent_ndims(sid_a); - - if(ret == 1) printf("Rank of A is %d.\n", ret); - printf("\n"); - - /* - * Get datatype of the dataset "B" - */ - did_b = H5Rdereference(did_r, H5R_OBJECT, &rbuf[1]); - tid_b = H5Dget_type(did_b); - if(H5Tequal(tid_b, H5T_NATIVE_FLOAT)) - printf("Datatype of B is H5T_NATIVE_FLOAT.\n"); - printf("\n"); - - /* - * Close all objects. - */ - H5Dclose(did_a); - H5Sclose(sid_a); - H5Dclose(did_b); - H5Tclose(tid_b); - H5Fclose(fid); - - return 0; - - } - - - |