У меня есть этот код C:
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
возвращает char из входного файла, как и ожидалось. Однако read
возвращает ошибку (-1), а errno
имеет значение 9 (неверный файловый дескриптор). Очевидно, что с дескриптором файла все в порядке, так как getc
удается использовать его для чтения символа.
В чем проблема?