/* */ #include "hdf5.h" #include #include typedef struct s1 { int var1; char var2[20]; int var3; } s1; s1 st[3]; typedef struct s2 { char var2[20]; } s2; s2 stedit[1]; int main() { int i,j, len, nCount = 3; hsize_t marray[]={1}; hsize_t coord[1]; hsize_t dims[1], chunkDims[1], ioffset[1], icnt[1], arr_dims[]={4}; herr_t status, err1, err2; hid_t fileId, dataSetId, dataSpaceId, memSpaceId, fSpaceId, vlDataTypeId, dataTypeId, pListId; hid_t array_dt; size_t size=20; /* Create the file */ fileId = H5Fcreate("cmpfsed.h5", H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT); printf ("H5Fcreate returns: %i\n", fileId); /* Create the array datatype */ vlDataTypeId = H5Tcopy(H5T_C_S1); printf ("H5Tcopy returns: %i\n", vlDataTypeId); status = H5Tset_size(vlDataTypeId, size); printf ("H5Tset_size returns: %i\n", status); dataTypeId = H5Tcreate(H5T_COMPOUND, sizeof(s1)); printf ("H5Tcreate returns: %i\n", dataTypeId); H5Tinsert(dataTypeId, "var1", HOFFSET(s1,var1), H5T_NATIVE_INT); H5Tinsert(dataTypeId, "var2", HOFFSET(s1,var2), vlDataTypeId); H5Tinsert(dataTypeId, "var3", HOFFSET(s1,var3), H5T_NATIVE_INT); /* Create the dataspace */ dims[0] = nCount; dataSpaceId = H5Screate_simple(1, dims, NULL); printf ("H5Screate_simple returns: %i\n", dataSpaceId); /* Create the property list */ pListId = H5Pcreate(H5P_DATASET_CREATE); /* Create the dataset */ chunkDims[0] = 1; status = H5Pset_chunk(pListId, 1, chunkDims); printf ("%i\n", status); dataSetId = H5Dcreate(fileId, "/String", dataTypeId, dataSpaceId, H5P_DEFAULT, pListId, H5P_DEFAULT); for (i=0; i