# MEDfichierOuvrir.c

Aller à la documentation de ce fichier.

    00001 /*  This file is part of MED.
    00002  *
    00003  *  COPYRIGHT (C) 1999 - 2011  EDF R&D, CEA/DEN
    00004  *  MED is free software: you can redistribute it and/or modify
    00005  *  it under the terms of the GNU Lesser General Public License as published by
    00006  *  the Free Software Foundation, either version 3 of the License, or
    00007  *  (at your option) any later version.
    00008  *
    00009  *  MED is distributed in the hope that it will be useful,
    00010  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
    00011  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    00012  *  GNU Lesser General Public License for more details.
    00013  *
    00014  *  You should have received a copy of the GNU Lesser General Public License
    00015  *  along with MED.  If not, see <http://www.gnu.org/licenses/>.
    00016  */
    00017
    00018
    00019 #include <med.h>
    00020 #include <med_config.h>
    00021 #include <med_outils.h>
    00022 #include <hdf5.h>
    00023
    00024 /*
    00025  * - Nom de la fonction : _MEDfichierOuvrir
    00026  * - Description : ouverture d'un fichier HDF en fonction du mode passe
    00027  *                 en parametre
    00028  * - Parametres :
    00029  *     - nom  (IN) : le nom du fichier
    00030  *     - mode (IN) : mode d'ouverture
    00031  * - Resultat : ID du fichier en cas de succes, -1 sinon
    00032  */
    00033 med_idt _MEDfichierOuvrir(char *nom,med_mode_acces mode)
    00034 {
    00035   med_idt fid;
    00036   int hdf_mode;
    00037
    00038   switch(mode)
    00039     {
    00040     case MED_LECTURE_ECRITURE :
    00041     case MED_LECTURE_AJOUT    :
    00042       hdf_mode = H5F_ACC_RDWR;
    00043       break;
    00044
    00045     case MED_LECTURE :
    00046       hdf_mode = H5F_ACC_RDONLY;
    00047       break;
    00048
    00049     default :
    00050       MESSAGE("Le mode d'accès demandé pour le fichier :");
    00051       SSCRUTE(nom);
    00052       MESSAGE("n'est pas compris");
    00053       return -1;
    00054     }
    00055
    00056   if ((fid = H5Fopen(nom,hdf_mode,H5P_DEFAULT)) < 0) {
    00057     MESSAGE("Impossible d'ouvrir le fichier :");
    00058     SSCRUTE(nom);
    00059     MESSAGE("en mode :");
    00060     ISCRUTE_int(mode);
    00061     return -1;
    00062   }
    00063
    00064   _MEDsetModeAcces(fid,mode);
    00065
    00066   return fid;
    00067 }