11 HDFdataset *hdf_dataset1;
17 system("rm ascii_hdf.txt");
21 // a new HDFfile object
22 hdf_file = new HDFfile("file_ascii.hdf");
23 MESSAGE( ">> A HDFfile object is created" );
25 hdf_file->OpenOnDisk(HDF_RDONLY);
26 MESSAGE( ">> The HDF file is opened on Disk with HDF_RDONLY access mode" )
28 hdf_group = new HDFgroup("ASCII GROUP",hdf_file);
29 MESSAGE(">> A new HDF group object ASCII GROUP" << " is created in memory")
31 hdf_group->OpenOnDisk();
32 MESSAGE( ">> The group ASCII GROUP is opened on disk" );
34 // The dataset object 'ASCII DATASET'
35 hdf_dataset1 = new HDFdataset("ASCII DATASET",hdf_group);
36 MESSAGE( ">> The dataset object 'ASCII DATASET' is created in memory " );
38 hdf_dataset1->OpenOnDisk();
39 MESSAGE( ">> The dataset object 'ASCII DATASET' is opened on disk " );
41 size = (size_t) hdf_dataset1->GetSize();
43 // Open the target file
45 if ( (fd = open("ascii_hdf.txt",O_RDWR|O_CREAT,00666)) <0) {
46 perror("open : test9");
50 // if ( (pos = lseek(fd,(off_t) size-3,SEEK_SET)) <0) {
51 // perror("lseek : test9");
55 // if ( write(fd,"END",3) <0) {
56 // perror("write : test9");
60 #ifdef _POSIX_MAPPED_FILES
61 // Map le fichier en mémoire
62 // if ((buffer = (char *) mmap(0,size,PROT_WRITE,MAP_SHARED,fd,0)) == MAP_FAILED ) {
63 // perror("mmap : test9");
66 buffer = new char[size];
68 // Sort de la compilation
69 #error Necessite l''utilisation de la primitive mmap
72 // Transfert les informations dans le fichier destination
73 hdf_dataset1->ReadFromDisk(buffer);
75 if ( write(fd,buffer,size) <0) {
76 perror("write : test9");
80 // Desalloue le mapping
81 // if (munmap(buffer,size) < 0 ) {
82 // perror("munmap : test9");
86 // Close the target file
88 perror("close : test9");
92 hdf_dataset1->CloseOnDisk();
93 MESSAGE( ">> The dataset is closed on disk " );
95 hdf_group->CloseOnDisk();
96 MESSAGE( ">> The group is closed on file" );
98 hdf_file->CloseOnDisk();
99 MESSAGE( ">> The HDF file is closed on Disk" )
106 MESSAGE( ">> MEMORY CLEAN : all HDF objects have been deleted" );
109 catch (HDFexception) {
111 MESSAGE( "!!! HDFexception !!! " )