summaryrefslogtreecommitdiffstats
path: root/examples/h5_compound.c
diff options
context:
space:
mode:
authorRobb Matzke <matzke@llnl.gov>1998-08-31 19:21:23 (GMT)
committerRobb Matzke <matzke@llnl.gov>1998-08-31 19:21:23 (GMT)
commit2ab2e14bb59d6ae7013bba9458e9f5a3b5cc2d1a (patch)
treec23cdadb45857e5e8549bb14fd057db63cce7c26 /examples/h5_compound.c
parent473452205dcc08055486d29b6dc5f36670c3ceb5 (diff)
downloadhdf5-2ab2e14bb59d6ae7013bba9458e9f5a3b5cc2d1a.zip
hdf5-2ab2e14bb59d6ae7013bba9458e9f5a3b5cc2d1a.tar.gz
hdf5-2ab2e14bb59d6ae7013bba9458e9f5a3b5cc2d1a.tar.bz2
[svn-r635] Changes since 19980831
---------------------- ./Makefile.in Running `make distclean' will not fail if one of the subdirectories has already been cleaned. ./config/BlankForm ./config/irix5.3 Cleaned it up more. Added better support/documentation for systems that have more than one compiler. ./config/alpha-dec-osf4.0 [NEW] Added a new config file as a result of testing on Jim Reus's machine. ./test/chunk.c Scaled down the testing range so we can actually run it interactively. ./tools/h5import.c Included <unistd.h> to get rid of warning for close(). ./src/H5detect.c Seg-faults on Linux for some reason when NDEBUG is defined, so I just undef it at the top of the source. ./test/big.c Added a fflush(). ./tools/h5ls.c The `-d' flag now works even when `-v' isn't specified. ./examples/h5_chunk_read.c ./examples/h5_compound.c ./examples/h5_extend_write.c ./examples/h5_group.c ./examples/h5_read.c ./examples/h5_write.c Indented according to hdf5 standards. Fixed compiler warnings
Diffstat (limited to 'examples/h5_compound.c')
-rw-r--r--examples/h5_compound.c263
1 files changed, 132 insertions, 131 deletions
diff --git a/examples/h5_compound.c b/examples/h5_compound.c
index 1641ee6..00cfe34 100644
--- a/examples/h5_compound.c
+++ b/examples/h5_compound.c
@@ -11,142 +11,143 @@
#define LENGTH 10
#define RANK 1
-main()
-
+int
+main(void)
{
-
-/* First structure and dataset*/
-typedef struct s1_t {
- int a;
- float b;
- double c;
-} s1_t;
-s1_t s1[LENGTH];
-hid_t s1_tid; /* File datatype hadle */
-
-/* Second structure (subset of s1_t) and dataset*/
-typedef struct s2_t {
- double c;
- int a;
-} s2_t;
-s2_t s2[LENGTH];
-hid_t s2_tid; /* Memory datatype handle */
-
-/* Third "structure" ( will be used to read float field of s1) */
-hid_t s3_tid; /* Memory datatype handle */
-float s3[LENGTH];
-
-int i;
-hid_t file, datatype, dataset, space; /* Handles */
-herr_t status;
-hsize_t dim[] = {LENGTH}; /* Dataspace dimensions */
-
-
-/*
- * Initialize the data
- */
- for (i = 0; i< LENGTH; i++) {
+ /* First structure and dataset*/
+ typedef struct s1_t {
+ int a;
+ float b;
+ double c;
+ } s1_t;
+ s1_t s1[LENGTH];
+ hid_t s1_tid; /* File datatype hadle */
+
+ /* Second structure (subset of s1_t) and dataset*/
+ typedef struct s2_t {
+ double c;
+ int a;
+ } s2_t;
+ s2_t s2[LENGTH];
+ hid_t s2_tid; /* Memory datatype handle */
+
+ /* Third "structure" ( will be used to read float field of s1) */
+ hid_t s3_tid; /* Memory datatype handle */
+ float s3[LENGTH];
+
+ int i;
+ hid_t file, dataset, space; /* Handles */
+ herr_t status;
+ hsize_t dim[] = {LENGTH}; /* Dataspace dimensions */
+
+
+ /*
+ * Initialize the data
+ */
+ for (i = 0; i< LENGTH; i++) {
s1[i].a = i;
s1[i].b = i*i;
s1[i].c = 1./(i+1);
-}
-
-/*
- * Create the data space.
- */
-space = H5Screate_simple(RANK, dim, NULL);
-
-/*
- * Create the file.
- */
-file = H5Fcreate(FILE, H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT);
-
-/*
- * Create the memory data type.
- */
-s1_tid = H5Tcreate (H5T_COMPOUND, sizeof(s1_t));
-H5Tinsert(s1_tid, "a_name", HOFFSET(s1_t, a), H5T_NATIVE_INT);
-H5Tinsert(s1_tid, "c_name", HOFFSET(s1_t, c), H5T_NATIVE_DOUBLE);
-H5Tinsert(s1_tid, "b_name", HOFFSET(s1_t, b), H5T_NATIVE_FLOAT);
-
-/*
- * Create the dataset.
- */
-dataset = H5Dcreate(file, DATASETNAME, s1_tid, space, H5P_DEFAULT);
-
-/*
- * Wtite data to the dataset;
- */
-status = H5Dwrite(dataset, s1_tid, H5S_ALL, H5S_ALL, H5P_DEFAULT, s1);
-
-/*
- * Release resources
- */
-H5Tclose(s1_tid);
-H5Sclose(space);
-H5Dclose(dataset);
-H5Fclose(file);
+ }
+
+ /*
+ * Create the data space.
+ */
+ space = H5Screate_simple(RANK, dim, NULL);
+
+ /*
+ * Create the file.
+ */
+ file = H5Fcreate(FILE, H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT);
+
+ /*
+ * Create the memory data type.
+ */
+ s1_tid = H5Tcreate (H5T_COMPOUND, sizeof(s1_t));
+ H5Tinsert(s1_tid, "a_name", HOFFSET(s1_t, a), H5T_NATIVE_INT);
+ H5Tinsert(s1_tid, "c_name", HOFFSET(s1_t, c), H5T_NATIVE_DOUBLE);
+ H5Tinsert(s1_tid, "b_name", HOFFSET(s1_t, b), H5T_NATIVE_FLOAT);
+
+ /*
+ * Create the dataset.
+ */
+ dataset = H5Dcreate(file, DATASETNAME, s1_tid, space, H5P_DEFAULT);
+
+ /*
+ * Wtite data to the dataset;
+ */
+ status = H5Dwrite(dataset, s1_tid, H5S_ALL, H5S_ALL, H5P_DEFAULT, s1);
+
+ /*
+ * Release resources
+ */
+ H5Tclose(s1_tid);
+ H5Sclose(space);
+ H5Dclose(dataset);
+ H5Fclose(file);
-/*
- * Open the file and the dataset.
- */
-file = H5Fopen(FILE, H5F_ACC_RDONLY, H5P_DEFAULT);
+ /*
+ * Open the file and the dataset.
+ */
+ file = H5Fopen(FILE, H5F_ACC_RDONLY, H5P_DEFAULT);
-dataset = H5Dopen(file, DATASETNAME);
-
-/*
- * Create a data type for s2
- */
-s2_tid = H5Tcreate(H5T_COMPOUND, sizeof(s2_t));
-
-H5Tinsert(s2_tid, "c_name", HOFFSET(s2_t, c), H5T_NATIVE_DOUBLE);
-H5Tinsert(s2_tid, "a_name", HOFFSET(s2_t, a), H5T_NATIVE_INT);
-
-/*
- * Read two fields c and a from s1 dataset. Fields in the file
- * are found by their names "c_name" and "a_name".
- */
-status = H5Dread(dataset, s2_tid, H5S_ALL, H5S_ALL, H5P_DEFAULT, s2);
-
-/*
- * Display the fields
- */
-printf("\n");
-printf("Field c : \n");
-for( i = 0; i < LENGTH; i++) printf("%.4f ", s2[i].c);
-printf("\n");
-
-printf("\n");
-printf("Field a : \n");
-for( i = 0; i < LENGTH; i++) printf("%d ", s2[i].a);
-printf("\n");
-
-/*
- * Create a data type for s3.
- */
-s3_tid = H5Tcreate(H5T_COMPOUND, sizeof(float));
-
-status = H5Tinsert(s3_tid, "b_name", 0, H5T_NATIVE_FLOAT);
-
-/*
- * Read field b from s1 dataset. Field in the file is found by its name.
- */
-status = H5Dread(dataset, s3_tid, H5S_ALL, H5S_ALL, H5P_DEFAULT, s3);
-
-/*
- * Display the field
- */
-printf("\n");
-printf("Field b : \n");
-for( i = 0; i < LENGTH; i++) printf("%.4f ", s3[i]);
-printf("\n");
-
-/*
- * Release resources
- */
-H5Tclose(s2_tid);
-H5Tclose(s3_tid);
-H5Dclose(dataset);
-H5Fclose(file);
+ dataset = H5Dopen(file, DATASETNAME);
+
+ /*
+ * Create a data type for s2
+ */
+ s2_tid = H5Tcreate(H5T_COMPOUND, sizeof(s2_t));
+
+ H5Tinsert(s2_tid, "c_name", HOFFSET(s2_t, c), H5T_NATIVE_DOUBLE);
+ H5Tinsert(s2_tid, "a_name", HOFFSET(s2_t, a), H5T_NATIVE_INT);
+
+ /*
+ * Read two fields c and a from s1 dataset. Fields in the file
+ * are found by their names "c_name" and "a_name".
+ */
+ status = H5Dread(dataset, s2_tid, H5S_ALL, H5S_ALL, H5P_DEFAULT, s2);
+
+ /*
+ * Display the fields
+ */
+ printf("\n");
+ printf("Field c : \n");
+ for( i = 0; i < LENGTH; i++) printf("%.4f ", s2[i].c);
+ printf("\n");
+
+ printf("\n");
+ printf("Field a : \n");
+ for( i = 0; i < LENGTH; i++) printf("%d ", s2[i].a);
+ printf("\n");
+
+ /*
+ * Create a data type for s3.
+ */
+ s3_tid = H5Tcreate(H5T_COMPOUND, sizeof(float));
+
+ status = H5Tinsert(s3_tid, "b_name", 0, H5T_NATIVE_FLOAT);
+
+ /*
+ * Read field b from s1 dataset. Field in the file is found by its name.
+ */
+ status = H5Dread(dataset, s3_tid, H5S_ALL, H5S_ALL, H5P_DEFAULT, s3);
+
+ /*
+ * Display the field
+ */
+ printf("\n");
+ printf("Field b : \n");
+ for( i = 0; i < LENGTH; i++) printf("%.4f ", s3[i]);
+ printf("\n");
+
+ /*
+ * Release resources
+ */
+ H5Tclose(s2_tid);
+ H5Tclose(s3_tid);
+ H5Dclose(dataset);
+ H5Fclose(file);
+
+ return 0;
}