int main(int argc, char *argv[]) { med_idt fid =0; med_int majeur =0, mineur=0, release=0; med_err ret =-1; med_bool hdfok =MED_FALSE; med_bool medok =MED_FALSE; med_bool fileexist =MED_FALSE; med_bool accessok =MED_FALSE; if (argc != 2) { fprintf(stdout,">> Utilisation : medconforme <nom_de_fichier_med> \n"); return 0; } /* * Quelle version de la bibliotheque MED est utilisee ? */ ret=MEDlibraryNumVersion(&majeur, &mineur, &release); EXIT_IF( ret<0 , "Erreur d'appel de la routine MEDlibraryNumVersion.", NULL); fprintf(stdout,"- Version de MED-fichier utilisée par medconforme : "IFORMAT"."IFORMAT"."IFORMAT" \n",majeur,mineur,release); /* * Le fichier à lire est-il accessible ? */ ret = MEDfileExist(argv[1],MED_ACC_RDONLY,&fileexist,&accessok ); MED_ERR_EXIT_IF(ret < 0 , MED_ERR_CALL,MED_ERR_API,"MEDfileExist"); if ( !fileexist ) { fprintf(stdout,"- Le fichier [%s] n'existe pas \n",argv[1]); goto SORTIE; } if ( !accessok ) { fprintf(stdout,"- Le fichier [%s] n'est pas accessible en lecture \n",argv[1]); goto SORTIE; } /* * Le fichier à lire est-il au bon format de fichier HDF ? */ ret=MEDfileCompatibility(argv[1],&hdfok,&medok); MED_ERR_EXIT_IF(ret < 0 , MED_ERR_CALL,MED_ERR_API,"MEDfileCompatibility"); if ( hdfok ) fprintf(stdout,"- Format HDF du fichier MED [%s] conforme au format HDF utilisé par la bibliothèque \n",argv[1]); else { fprintf(stdout,"- Format HDF du fichier MED [%s] non conforme au format HDF utilisé par la bibliothèque \n",argv[1]); goto SORTIE; } /* * Le fichier à lire a-t-il été créé avec une version de la bilbiothèque MED conforme avec celle utilisée ? * (Numéros majeur identique et mineur de la bibliothèque supérieur à celui du fichier). */ if ( medok ) { fprintf(stdout,"- Version MED du fichier [%s] conforme a la bibliothèque MED utilisée \n",argv[1]); if ((fid = MEDfileOpen(argv[1],MED_ACC_RDONLY)) < 0) { MED_ERR_(ret,MED_ERR_OPEN,MED_ERR_FILE,argv[1]); goto ERROR; } /* * Une fois le fichier ouvert on peut avoir acces au numero de version complet */ if ( MEDfileNumVersionRd(fid, &majeur, &mineur, &release) < 0 ) { MED_ERR_(ret,MED_ERR_CALL,MED_ERR_API,"MEDfileNumVersionRd"); goto ERROR; } fprintf(stdout,"- Ce fichier a ete créé avec MED-fichier V"IFORMAT"."IFORMAT"."IFORMAT" \n",majeur,mineur,release); } else fprintf(stdout,"- Version MED du fichier [%s] non conforme avec celle de la bibliothèque utilisée \n",argv[1]); SORTIE: ret = 0; ERROR: if (fid > 0) if (MEDfileClose(fid) < 0) { MED_ERR_(ret,MED_ERR_CLOSE,MED_ERR_FILE,argv[1]); ret = -1; } return ret; }
int main (int argc, char **argv) { med_idt fid=0; med_int majeur=0, mineur=0, release=0; med_bool hdfok=MED_FALSE,medok=MED_FALSE; char medversion[MED_SNAME_SIZE+1]=""; /* Creation du fichier test18.med */ if ((fid = MEDfileOpen("test18.med",MODE_ACCES)) < 0) { MESSAGE("Erreur a la creation du fichier test18.med"); return -1; } fprintf(stdout,"- Creation du fichier test18.med \n"); if (MEDfileClose(fid) < 0) { MESSAGE("Erreur a la fermeture du fichier"); return -1; } fprintf(stdout,"- Fermeture du fichier \n"); /* * Quelle version de la bibliotheque MED est utilisee ? */ MEDlibraryNumVersion(&majeur, &mineur, &release); fprintf(stdout,"- Version de MED utilisee pour lire le fichier : "IFORMAT"."IFORMAT"."IFORMAT" \n",majeur,mineur,release); /* * Le fichier à lire est-il au bon format de fichier HDF ? */ if (MEDfileCompatibility("test18.med",&hdfok,&medok)<0 ) { MESSAGE("Erreur à la vérification de la compatibilité du fichier avec les bibliothèques med et hdf."); return -1; } if ( hdfok ) fprintf(stdout,"- Format HDF du fichier MED conforme au format HDF utilise par la bibliotheque \n"); else fprintf(stdout,"- Format HDF du fichier MED non conforme au format HDF utilise par la bibliotheque \n"); /* * Le fichier a lire a-t-il été créé avec une version de la bibliothèque MED conforme avec celle utilise ? * (Numéros majeur et mineur identiques). */ if ( medok) fprintf(stdout,"- Version MED du fichier conforme a la bibliotheque MED utilisee \n"); else fprintf(stdout,"- Version MED du fichier non conforme a la bibliotheque MED utilisee \n"); if ((fid = MEDfileOpen("test18.med",MED_ACC_RDONLY)) < 0) { MESSAGE("Erreur a l'ouverture du fichier test18.med"); return -1; } fprintf(stdout,"- Ouverture du fichier en lecture \n"); /* * Une fois le fichier ouvert on peut avoir acces au numero de version complet */ if (MEDfileNumVersionRd(fid, &majeur, &mineur, &release) < 0) { MESSAGE("Erreur a la lecture du numero de version de la bibliothèque "); return -1; } fprintf(stdout,"- Ce fichier a ete cree avec MED "IFORMAT"."IFORMAT"."IFORMAT" \n",majeur,mineur,release); if ( MEDfileStrVersionRd(fid, medversion) < 0 ) { MESSAGE("Erreur à la lecture de la version du fichier MED"); return -1; } fprintf(stdout,"- Ce fichier a ete cree avec %s\n",medversion); if (MEDfileClose(fid) < 0) { MESSAGE("Erreur a la fermeture du fichier"); return -1; } fprintf(stdout,"- Fermeture du fichier \n"); return 0; }