Læs fil, og udskriv indhold - hvorfor virker der ikke?
HejJeg vil læse indholdet af et ppm billeder, som starter således:
P3
# CREATOR: GIMP PNM Filter Version 1.1
543 719
Jeg har lavet dette meget simple program:
int main() {
int idp = 0;
FILE *fp ;
fp = fopen ( "portraitl-ascii.ppm","r" ) ;
char *buf = malloc(256);
fgets(buf, 256, fp);
idp=0;
while(idp<50) {
printf("%c",buf[idp++]);
}
return(0);
}
Når jeg kørere det står der bare "P3".
Kører jeg det med strace kan jeg se at filen læses rigtigt:
read(3, "P3\n# CREATOR: GIMP PNM Filter Ve"..., 4096) = 4096
Men udskrivning ser således ud:
write(1, "P3\n", 3P3
) = 3
write(1, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 47) = 47
Som om alt efter \n bliver lavet om til NULL.
Hvorfor det? :)
På forhånd tak
Christoffer