#include "hdf.h" main( ) { int32 file_id, an_id, ann_id, ann_id1, vgroup_id; uint16 obj_tag, obj_ref; intn status; static char file_label[] = "This is a file label."; static char file_desc[] = "This is a file description."; static char data_label[] = "This is a data label."; static char data_desc[] = "This is a data description."; /* Create the HDF file. */ file_id = Hopen("an.hdf", DFACC_CREATE, 0); printf ("Hopen returns %d\n", file_id); /* Initialize the AN interface and obtain an interface id. */ an_id = ANstart(file_id); printf ("ANstart returns %d\n", an_id); /* Create a vgroup. */ status = Vstart(file_id); printf ("Vstart returns %d\n", status); vgroup_id = Vattach(file_id, -1, "w"); printf ("Vattach returns %d\n", vgroup_id); status = Vsetname (vgroup_id, "Vgroup w/Annotations"); printf ("Vsetname returns %d\n", status); status = Vdetach(vgroup_id); printf ("Vdetach returns %d\n", status); /* status = Vend(file_id); printf ("Vend returns %d\n", status); */ /* Get reference number of vgroup just created. */ /* status = Vstart(file_id); printf ("Vstart returns %d\n", status); */ obj_ref = Vfind (file_id, "Vgroup w/Annotations"); printf ("Vfind returns %d\n", obj_ref); /* status = Vend(file_id); printf ("Vend returns %d\n", status); */ obj_tag = DFTAG_VG; /* Create a data description for the Vgroup just created.*/ ann_id = ANcreate(an_id, obj_tag, obj_ref, AN_DATA_DESC); printf ("ANcreate returns %d\n",(int) ann_id); /* If you uncomment this, the program will work */ status = ANwriteann(ann_id, data_desc, strlen(data_desc)); printf ("ANwriteann returns %d\n", status); ann_id1 = ANcreate(an_id, obj_tag, obj_ref, AN_DATA_DESC); printf ("ANcreate returns ann_id1 = %d\n", (int)ann_id1); /* Write the data description to the file. */ status = ANwriteann(ann_id1, data_desc, strlen(data_desc)); printf ("ANwriteann returns %d\n", status); /* Terminate access to the annotation. */ status = ANendaccess(ann_id); /* Terminate access to the AN interface. */ status = ANend(an_id); status = Vend(file_id); printf ("Vend returns %d\n", status); /* Close the file. */ status = Hclose(file_id); }