fopen?fopen函数参数
一、open和fopen的区别
1、来源不同
open是unix系统调用函数(包括Linux),返回的是文件描述符,它是文件描述符表里的索引。
fopen是ANSIC标准中的C语言库函数,在不同的系统中应该调不同的内核api,返回的是一个指向文件结构的指针。
2、移植性
从来源看,fopen是C标准函数,因此拥有良好的移植性,而open是unix系统调用,移植性有限,如windows下相似的功能使用api函数CreatFile。
3、使用范围
open返回文件描述符,而文件描述符是unnix系统下的重要概念,unix下的一切设备都是文件的形式操作,如网络套接字、硬件设备等、当然包括操作普通正规文件(RegularFile)
Fopen是从来操纵普通正规文件(RegularFile)的
4、文件IO层次
如果从文件IO的角度来看,open属于低级IO函数,fopen属于高级IO函数,低级和高级的简单区分标准是:谁离系统内核更近,低级文件IO运行在内核态、高级文件IO运行在用户态。
5、缓冲区
open没缓冲区,fopen有缓冲区
二、fopen函数wt和w区别
fopen函数wt和w的区别在于文件打开方式不同。wt表示以文本方式打开文件并写入,如果文件不存在则创建文件,如果文件存在则清空文件内容并写入;w表示以二进制方式打开文件并写入,如果文件不存在则创建文件,如果文件存在则清空文件内容并写入。wt方式适用于文本文件的写入,w方式适用于二进制文件的写入。在使用时需要根据文件类型和需求选择合适的打开方式。
三、fopen函数参数
fopen的函数原型为:FILE*fopen(constchar*filename,constchar*mode);其功能是使用给定的模式mode打开filename所指向的文件。文件顺利打开后,指向该流的文件指针就会被返回。如果文件打开失败则返回NULL,并把错误代码存在error中。该函数位于C标准库<stdio.h>中。
fopen函数语法
函数原型
FILE*fopen(constchar*filename,constchar*mode);
参数
filename--这是C字符串,包含了要打开的文件名称。
mode--这是C字符串,包含了文件访问模式。
功能
使用给定的模式mode打开filename所指向的文件。
返回值
文件顺利打开后,指向该流的文件指针就会被返回。如果文件打开失败则返回NULL,并把错误代码存在error中。
一般而言,打开文件后会做一些文件读取或写入的动作,若打开文件失败,接下来的读写动作也无法顺利进行,所以一般在fopen()后作错误判断及处理。[1]
参数说明
参数mode字符串包含了文件访问模式,欲打开的文件路径及文件名,参数mode字符串则代表着流形态。