08. august 2013 - 11:08Der er
3 kommentarer og 1 løsning
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); } }
Alle relevante variable skal nulstilles og for purister skal alle pointerer free's og NULL's
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.