我有这个 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
正如预期的那样,从输入文件返回一个字符。但是read
返回错误 (-1) 并errno
设置为 9(错误的文件描述符)。显然文件描述符是好的,因为getc
设法使用它来读取一个字符。
这里有什么问题?