Créer/Ouvrir/Fermer un fichier MED

# Ouverture/Création d'un fichier MED

L'ouverture/création d'un fichier MED s'effectue avec la routine MEDfileOpen (C) / mfiope (F).

Cette routine renvoie un identificateur ( `fid` ) utilisé par les autres routines de l'API pour accéder aux données du fichier.

Les différents modes d'accès possibles sont :

- Création (MED_ACC_CREAT)

- Ouverture en lecture seule (MED_ACC_RDONLY)

- Ouverture en lecture/écriture (MED_ACC_RDWR)

- Ouverture en lecture/écriture avec ajout (MED_ACC_RDEXT)

Dans ce dernier mode, l'écriture n'est possible que pour ajouter dans le fichier de nouvelles données (une erreur est générée si la donnée existe déjà).

fid = MEDfileOpen("test1.med",MODE_ACCES);
MODE_ACCES
#define MODE_ACCES
Definition 3.0.8/test10.c:35
MEDfileOpen
MEDC_EXPORT med_idt MEDfileOpen(const char *const filename, const med_access_mode accessmode)
Ouverture d'un fichier MED.
Definition MEDfileOpen.c:42

Fichier d'exemple associé

# Fermeture d'un fichier MED

La routine MEDfileClose (C) / mficlo (F) permet de fermer un fichier.

if ((ret = MEDfileClose(fid)) < 0) {
MEDfileClose
MEDC_EXPORT med_err MEDfileClose(med_idt fid)
Fermeture d'un fichier MED.
Definition MEDfileClose.c:30
MESSAGE("Erreur à la fermeture du fichier");
return -1;
}
MESSAGE
#define MESSAGE(chaine)
Definition med_utils.h:324

Fichier d'exemple associé

# Entête de fichier

La routine MEDfileCommentWr (C) / mficow (F) permet l'écriture d'un en-tête de fichier, la routine MEDfileCommentRd (C) / mficor (F) la lecture.

Cet en-tête à usage optionnel est purement descriptif. Il comporte au plus MED_COMMENT_SIZE caractères.

char des[MED_COMMENT_SIZE+1]="Ceci est une courte description de mon fichier test1.med";
MED_COMMENT_SIZE
#define MED_COMMENT_SIZE
Definition med.h:79
if (MEDfileCommentWr(fid,des) < 0) {
MEDfileCommentWr
MEDC_EXPORT med_err MEDfileCommentWr(const med_idt fid, const char *const comment)
Ecriture d'un descripteur dans un fichier MED.
Definition MEDfileCommentWr.c:34
MESSAGE("Erreur à l'ecriture de l'en-tete du fichier");
ret = -1;
}

Fichier d'exemple associé

char des[MED_COMMENT_SIZE+1]="";
ret = MEDfileCommentRd(fid, des);
MEDfileCommentRd
MEDC_EXPORT med_err MEDfileCommentRd(const med_idt fid, char *const comment)
Lecture d'un descripteur dans un fichier MED.
Definition MEDfileCommentRd.c:33

Fichier d'exemple associé

# Compatibilité entre la version du fichier et la version de la bibliothèque

La routine MEDfileCompatibility / mficom permet de vérifier :

- Si le fichier est au format HDF5

- S'il correspond à un fichier MED compatible avec la bibliothèque.

L'appel à cette routine se fait généralement avant l'ouverture du fichier.

med_bool hdfok=MED_FALSE,medok=MED_FALSE;
med_bool
med_bool
Definition med.h:260
MED_FALSE
@ MED_FALSE
Definition med.h:260
if (MEDfileCompatibility("test18.med",&hdfok,&medok)<0 ) {
MEDfileCompatibility
MEDC_EXPORT med_err MEDfileCompatibility(const char *const filename, med_bool *const hdfok, med_bool *const medok)
Vérification de la compatibilité d'un fichier avec HDF et MED.
Definition MEDfileCompatibility.c:33
MESSAGE("Erreur à la vérification de la compatibilité du fichier avec les bibliothèques med et hdf.");
return -1;
}

Fichier d'exemple associé

# Lecture de la version du fichier

Les routines MEDfileNumVersionRd / mfinvr et MEDfileStrVersionRd / mfisvr lisent la version de la bibliothèque MED utilisée à la création du fichier.

- MEDfileNumVersionRd / mfinvr lit la version sous forme de trois scalaire majeur,mineur,release

  med_int majeur=0, mineur=0, release=0;
  med_int
  int med_int
  Definition med.h:333
  if (MEDfileNumVersionRd(fid, &majeur, &mineur, &release) < 0) {
  MEDfileNumVersionRd
  MEDC_EXPORT med_err MEDfileNumVersionRd(const med_idt fid, med_int *const major, med_int *const minor, med_int *const release)
  Lecture du numéro de version de la bibliothèque MED utilisée pour créer le fichier.
  Definition MEDfileNumVersionRd.c:34
  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);
  IFORMAT
  #define IFORMAT
  Definition med_utils.h:145

  Fichier d'exemple associé

- MEDfileStrVersionRd / mfisvr lit la version sous forme de chaîne de caractère

  char medversion[MED_SNAME_SIZE+1]="";
  MED_SNAME_SIZE
  #define MED_SNAME_SIZE
  Definition med.h:82
  if ( MEDfileStrVersionRd(fid, medversion) < 0 ) {
  MEDfileStrVersionRd
  MEDC_EXPORT med_err MEDfileStrVersionRd(const med_idt fid, char *const version)
  Lecture du numéro de version de la bibliothèque MED utilisée pour créer le fichier (renvoyé sous la f...
  Definition MEDfileStrVersionRd.c:35
  MESSAGE("Erreur à la lecture de la version du fichier MED");
  return -1;
  }
  fprintf(stdout,"- Ce fichier a ete cree avec %s\n",medversion);

  Fichier d'exemple associé

# Liens vers les fichiers exemples utilisés

- Fichier d'exemple test1.c

- Fichier d'exemple test2.c

- Fichier d'exemple test18.c