|
在同一个文件上执行I/O操作时,系统I/O与标准I/O可以混合使用,借助于库函数 fdopen、fileno可以将文件描述符和FILE指针对象之间进行转换。 1.3.3.1 fileno 用于将传入的FILE指针转换成整数文件描述符。 1)头文件 #include 2)函数原型 int fileno(FILE *stream); 3)参数 stream:表示需要转换的文件指针。 4)返回值 如果成功,返回得到文件描述符,如果转换错误将返回-1,并且会设置errno来指示错误原因。 1.3.3.2 fdopen 用于将传入的整数文件描述符转换成FILE指针。 1)头文件 #include 2)函数原型 FILE *fdopen(int fd, const char *mode); 3)参数 fd:要操作的文件描述符。 mode:表示打开文件用的操作(1-6必选其一,7和8可以省略) ⚫"r":以只读方式打开文件,文件必须存在。 ⚫"w":以写入方式打开文件,如果文件不存在则创建文件;如果文件存在,则清除原文件内容并创建文件。 ⚫"a":以追加方式打开文件,如果文件不存在则创建文件;如果文件存在,则追加内容到文件的末尾。 ⚫"r+":相当于在“r”权限的基础上添加写入权限,以读写方式打开文件,文件必须存在。 ⚫"w+":相当于在“w”权限基础上添加“r+”权限,可以对文件做读取和写入,如果文件不存在则创建文件;如果文件存在,则清空原文件内容并创建文件。 ⚫"a+":相当于在“a”权限基础上添加“r+”权限,可以对文件做读取和写入,如果文件不存在则创建文件,如果文件存在,则追加内容到文件的末尾。 ⚫"b":二进制文件。 ⚫"t":文本文件。 4)返回值 如果成功,返回得到文件指针,如果转换错误将返回-1,并且会设置errno来指示错误原因。
|