/usr/share/doc/libhdf4-doc/examples/c/SD_write_to_sds.c is in libhdf4-doc 4.2.13-2.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 | #include "mfhdf.h"
#define FILE_NAME "SDS.hdf"
#define X_LENGTH 5
#define Y_LENGTH 16
int main()
{
/************************* Variable declaration **************************/
int32 sd_id, sds_id, sds_index;
intn status;
int32 start[2], edges[2];
int32 data[Y_LENGTH][X_LENGTH];
int i, j;
/********************* End of variable declaration ***********************/
/*
* Data set data initialization.
*/
for (j = 0; j < Y_LENGTH; j++) {
for (i = 0; i < X_LENGTH; i++)
data[j][i] = (i + j) + 1;
}
/*
* Open the file and initialize the SD interface.
*/
sd_id = SDstart (FILE_NAME, DFACC_WRITE);
/*
* Attach to the first data set.
*/
sds_index = 0;
sds_id = SDselect (sd_id, sds_index);
/*
* Define the location and size of the data to be written to the data set.
*/
start[0] = 0;
start[1] = 0;
edges[0] = Y_LENGTH;
edges[1] = X_LENGTH;
/*
* Write the stored data to the data set. The third argument is set to NULL
* to specify contiguous data elements. The last argument must
* be explicitly cast to a generic pointer since SDwritedata is designed
* to write generic data.
*/
status = SDwritedata (sds_id, start, NULL, edges, (VOIDP)data);
/*
* Terminate access to the data set.
*/
status = SDendaccess (sds_id);
/*
* Terminate access to the SD interface and close the file.
*/
status = SDend (sd_id);
return 0;
}
|