Kan nogen se fejl. Vil følgende loop sikre mig at configurationsfilen HELT sikkert bliver indlæst.
Hej Eksperter.Jeg anvender Linux.
Jeg har brug for at indlæse en configurationsfil ved programstart.
Men jeg 'mistænker' et andet program for til tider kortvarigt at have sat lock på configurationsfilen.
Vil følgende kode sikre at indlæsningen af configurationsværdierne ikke er "" el. NULL?
Kan nogle se fejl?
Det compiler fint, men det gør det jo ikke fejlfrit :) . Og jeg ved ikke rigtig hvordan jeg skal teste om det fungerer da det andet program kun til tider læser filen.
Hver værdi i configurationsfilen afsluttes med "\n" undtaget den sidste.
_CONF_LINES = antal linier i configurationsfilen (p.t. 40)
char *parr[50]
succesinload = 1 (hvis = 0 fejl i indlæsning)
loop = 0
while (loop < 3){
for (i = 0; i < _CONF_LINES; i++){ parr[i] = NULL; }
textfile = fopen("flexdrvconf.txt","r");
if (textfile!=NULL){
while (fgets(textline, sizeof(textline), textfile)) {
if (textline[strlen(textline) - 1] == '\n'){
textline[strlen(textline)-1] = 0;
}
parr[num_of_lines] = malloc(strlen(textline) + 1);
strcpy(parr[num_of_lines],textline);
num_of_lines++;
}
fclose(textfile);
for (i = 0; i < _CONF_LINES; i++){
if (parr[i] == NULL || parr[i] == "")) {
succesinload = 0;
}
}
}
if (succesinload == 1) { loop = 3; }
else {
loop++;
sleep(1);
}
}
Jeg antager at 3 loop med 1 sek. er sikkert.
Venligst Christian