MEDattrStringEcrire.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 #include <hdf5.h>
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034 med_err _MEDattrStringEcrire(med_idt pere,char * nom,int longueur, char * val)
00035 {
00036 med_idt aid,attr, datatype;
00037 med_err ret;
00038 med_mode_acces MED_MODE_ACCES;
00039
00040 if ( (MED_MODE_ACCES = _MEDmodeAcces(pere) ) == MED_UNDEF_MODE_ACCES ) {
00041 MESSAGE("Impossible de déterminer le mode d'acces au fichier.");
00042 return -1;
00043 }
00044
00045 if ((aid = H5Screate(H5S_SCALAR)) < 0)
00046 return -1;
00047 if((datatype = H5Tcopy(H5T_C_S1)) < 0)
00048 return -1;
00049 if((ret = H5Tset_size(datatype,longueur+1)) < 0)
00050 return -1;
00051
00052 if ( ((attr = H5Aopen_name(pere,nom)) >= 0)
00053 && ( MED_MODE_ACCES == MED_LECTURE_AJOUT) )
00054 return -1;
00055 else
00056 if ( attr < 0)
00057 if ((attr = H5Acreate(pere,nom,datatype,aid,H5P_DEFAULT)) < 0) return -1;
00058
00059 if ((ret = H5Awrite(attr, datatype, val)) < 0)
00060 return -1;
00061
00062 if ((ret = H5Sclose(aid)) < 0)
00063 return -1;
00064 if ((ret = H5Tclose(datatype)) < 0)
00065 return -1;
00066 if ((ret = H5Aclose(attr)) < 0)
00067 return -1;
00068
00069 return 0;
00070 }