MEDprofileInfo.c
Aller à la documentation de ce fichier.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #include <med.h>
00020 #include <med_config.h>
00021 #include <med_outils.h>
00022
00023 #include <string.h>
00024 #include <stdlib.h>
00025
00039 med_err
00040 MEDprofileInfo(const med_idt fid,
00041 const int profileit,
00042 char * const profilename,
00043 med_int * const profilesize )
00044 {
00045 med_idt _pfid=0;
00046 med_err _ret=-1;
00047 char _path[MED_TAILLE_PROFILS+MED_NAME_SIZE+1]=MED_PROFILS;
00048 int _num=profileit-1;
00049
00050
00051
00052
00053 _MEDmodeErreurVerrouiller();
00054
00055
00056
00057
00058 if ( _MEDobjectGetName(fid, _path ,_num, profilename) < 0 ) {
00059 MED_ERR_(_ret,MED_ERR_ACCESS,MED_ERR_DATAGROUP,_path);
00060 ISCRUTE_int(profileit);
00061 goto ERROR;
00062 }
00063
00064 strcat(_path,profilename);
00065 if ((_pfid = _MEDdatagroupOuvrir(fid,_path)) < 0) {
00066 MED_ERR_(_ret,MED_ERR_OPEN,MED_ERR_DATAGROUP,MED_ERR_PROFILE_MSG);
00067 SSCRUTE(_path);
00068 goto ERROR;
00069 }
00070
00071
00072
00073
00074 if (_MEDattrEntierLire(_pfid,MED_NOM_NBR,profilesize) < 0) {
00075 MED_ERR_(_ret,MED_ERR_READ,MED_ERR_ATTRIBUTE,MED_ERR_PROFILE_MSG);
00076 SSCRUTE(_path);SSCRUTE(MED_NOM_NBR);ISCRUTE(*profilesize);
00077 goto ERROR;
00078 }
00079
00080 _ret = 0;
00081 ERROR:
00082
00083 if ( _pfid > 0 ) if ( _MEDdatagroupFermer(_pfid) < 0) {
00084 MED_ERR_(_ret,MED_ERR_CLOSE,MED_ERR_DATAGROUP,MED_PROFILS);
00085 ISCRUTE_id(_pfid);
00086 }
00087
00088 return _ret;
00089 }