0

我的意思是功能方面。我正在使用 fileno 将 FILE* 转换为 fd 并且它返回时没有任何错误,但是当我对 fileno 的返回值使用 pread 时,它给了我一个错误的文件描述符错误。IE:

FILE* fin;
FILE* fout;
int fd, result;
fd = open("path", O_RDWR);
// Do stuff with fin and fout
// fout is the file with all of the stuff I want to copy to the fd
fd = fileno(fout);
result = pread(fd, buf, size, offset); // Bad file descriptor--returns a 9

我不知道是什么原因导致 pread 给我这个错误,这让我发疯了。

4

2 回答 2

1

我的猜测是这fout不是一个有效的 FILE* 指针。你验证了吗?你检查过返回值fileno吗?

于 2012-04-29T23:01:04.133 回答
1

你检查过退货fileno()吗?
fileno() 手册页

于 2012-04-30T18:04:08.213 回答