Segmentation Fault
-
Ich krieg hier wieder nen Segmentation Fault komm aber nicht drauf warum, der Fehler is in der Zeile :
fgets(cpu_anz,23,point);
Hier die gesamte Methode:
int getcpu() { FILE *fp; int cpu=0,abort=0; char s[100]=""; char cpu_anz[3]=""; void *point; fp=fopen("temp_proz","r"); while(feof(fp)==0 && abort==0) { fgets(s,100,fp); point=strstr(s,"resources_used.ncpus"); printf("%s",s); fgets(cpu_anz,23,point); printf("%s\n",cpu_anz); if(cpu_anz !=0) { abort=1; } } cpu=atoi(cpu_anz); return(cpu); }
-
Der dritte Parameter von fgets muss ein FILE-Pointer sein!
Nachzulesen auch hier: http://ccs.ucsd.edu/c/stdio.html#fgets
-
jetzt geht es vielen dank
-
Wieso liest du 23 zeichen, wenn das Array ne größe von 3 hat?
-
Und was passiert, wenn jemand eine Zahl kleiner 0 eingibt?
-
if(cpu_anz !=0)
cpu_anz ist übrigens niemals 0.
Wenn du wissen willst, ob der String leer ist, musst du das erste Element auf 0 oder '\0' prüfen -> if(*cpu_anz !=0)