Ich habe dieses C-Code:Lesen Berichte Bad File Descriptor trotz getc erfolgreich die gleiche fd mit einem Zeichen lesen
FILE * fd = fopen(filename,"rb");
printf("%c ",(char)getc(fd)); // returns expected char
unsigned char buffer[10];
printf("%d ",read(fd, &buffer, 10)); // -1
printf("%d\n",errno); // 9
getc
ein Zeichen aus der Eingabedatei zurückgibt, wie erwartet. read
gibt jedoch einen Fehler (-1) zurück und errno
wird auf 9 (beschädigter Dateideskriptor) gesetzt. Offensichtlich ist der Dateideskriptor OK, da getc
es schafft, ein Zeichen zu lesen.
Was ist das Problem hier?
Ruft der Compiler nicht eine Warnung an Sie? Warnungen ernst nehmen! – alk