有没有办法将FILE *的内容复制到文件描述符?

时间:2012-04-29 22:56:54

标签: c file file-descriptor

通过这个,我的意思是功能方面。我正在使用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给我这个错误而且它让我疯了。

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:1)

您是否检查了fileno()的回复?
fileno() man page