我们可以使用fileno()
函数从FILE*流中获取一个文件描述符。是否有一种方法可以获取文件描述符并且不需要重新打开文件来获取FILE*流?
FILE *fdopen(int fd, const char *mode);
请参考 fopen(3)
,fdopen(3)
函数应该在同一页上:
fdopen()
函数将一个流与现有的文件描述符 fd 关联起来。流的模式(取值为"r"
、"r+"
、"w"
、"w+"
、"a"
或"a+"
")必须与文件描述符的模式兼容。新流的文件位置指针设置为属于 fd 的文件位置指针,并清除错误和文件结束指示器。模式"w"
或"w+"
" 不会导致文件截断。文件描述符不会被复制,当由fdopen()
创建的流关闭时,文件描述符将被关闭。将fdopen()
应用于共享内存对象的结果是未定义的。