#include #include "df.h" #include "mfhdf.h" void main(int argc, char *argv[]) { int32 hdf_fp, vdata_ref, vdata_id, n_records, interlace_mode, vdata_size; char field_list[500]; uint8 *databuf; if (argc!=3) { printf("Usage: hdf_file_info hdf_file vdata_name\n"); exit(1); } if ((hdf_fp=Hopen(argv[1], DFACC_READ, 0))==FAIL) { fprintf(stderr, "Hopen: could not open hdf file\n"); exit(-1); } Vstart(hdf_fp); if ((vdata_ref=VSfind(hdf_fp,argv[2]))==0) { fprintf(stderr, "VSfind: could not find Vdata name %s\n", argv[2]); exit(-1); } vdata_id = VSattach(hdf_fp, vdata_ref, "r"); VSinquire(vdata_id, &n_records, &interlace_mode, field_list, &vdata_size, NULL); printf("n_records: %d\n", n_records); printf("interlace_mode: %d\n", interlace_mode); printf("vdata_size: %d\n", vdata_size); printf("field_list: %s\n", field_list); databuf = (uint8 *)malloc(vdata_size*n_records); VSsetfields(vdata_id, field_list); VSread(vdata_id, databuf, n_records, 1); VSdetach(vdata_id); Vend(hdf_fp); if (Hclose(hdf_fp)==FAIL) { fprintf(stderr, "Hclose: could not close hdf file\n"); exit(-1); } exit(0); }