Bonjour,
Je debute en C, et un des premiers exercice que je me suis fixe est d'ecrire une fonction qui me recupere une valeur d'un fichier de conf et me la retourne sous forme de string.
Le fichier de conf est du type :
name1=value1
name2=value2
Je voulais savoir si ce code vous paraissait propre, comment je pourrai l'ameliorer, et ce que je dois a tout prix eviter de faire.
Par exemple ceci ne me plait pas vraiment :
sValue = sName+strlen(sName)+1;
Merci beaucoup de vos reactions.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
| char *getconf(char *name)
{
FILE *fichier;
char sLine[1024];
char *sName;
char *sValue;
// Ouvre le fichier en lecture seule
fichier = fopen(CONFFILE, "r");
if (fichier == 0)
{
printf("Erreur : Fichier de configuration %s introuvable.", CONFFILE);
exit(1);
}
// On boucle ligne par ligne jusqu'a la fin du fichier
while(NULL != fgets(sLine, (int) sizeof sLine, fichier))
{
if (strchr(sLine, '=') != NULL)
{
sName = sLine;
sprintf(strchr(sName, '='), "%s", "\0");
if (strcmp(sName, name) == 0)
{
sValue = sName+strlen(sName)+1;
return(sValue);
} else {
continue;
}
} else {
continue;
}
}
sValue = "";
return(sValue);
} |
Partager