一、介绍
库函数: fileno(),fdopen(). 作用是混合使用库函数和系统函数调用进行文件的I/O操作。
#include <stdio.h>
//将一个文件流中对应打开的文件描述符fd返回
int fileno(FILE *stream);
参数:
stream: fopen之类的函数打开的文件流
返回值:
正确返回文件描述符fd,一般不会错误除非无效的流,返回-1,并设置errno为EBADF
// 给定一个文件描述符和mode创建一个使用该描述符对应的流,与fileno相反
FILE *fdopen(int fd, const char *mode);
参数:
fd: open函数打开的文件描述符
mode: 参考fopen函数的mode
返回值:
正确返回流,错误返回NULL并设置errno
注意:
1.mode必须是fopen中的mode
2.w”和“w+”不导致文件截断,因为截断是文件打开时的动作,而在此情形下,文件已经被打开。
3.fdopen()建立的新流的文件位置与描述字fd的文件位置相同,且流的错误指示器和文件结束指示器