目录
1.fopen函数
2.fclose函数
3.fopen函数和fclose实战
1.fopen函数
fopen fwrite fread fclose ...属于标准C库
include <stdio.h> standard io lib
open close write read 属于Linux系统调用
可移植型:fopen > open(open函数只在嵌入式平台中才可以使用,不可跨平台)
fopen在用户态是缓存的
open在用户态是没有缓存的
打开一个文件,返回指向该文件的指针
函数原型
FILE * fopen(constchar *path , cost char *mode)
/*
* @description : 打开一个文件
* @param ‐ path : 指定文件路径,如:"./test.txt"
* @param ‐ mode :指定文件的打开方式,如下图:
* @return : 成功,返回指向该文件的文件指针; 若失败,返回 NULL
*/
注:终端输入 man fopen 即可查看函数
参数说明:第一个参数为欲打开文件的文件路径及文件名,第二个参数表示对文件的打开方式
mode有以下值:
-
r :只读方式打开,文件必须存在
-
r+ :可读写,文件必须存在
-
rb+ :打开二进制文件,可以读写
-
rt+: 打开文本文件,可读写
-
w: 只写,文件存在则文件长度清 0 ,文件不存在则建立该文件
-
w+: 可读写,文件存在则文件长度清 0 ,文件不存在则建立该文件
-
a: 附加方式打开只写,不存在建立该文件,存在写入的数据加到文件尾, EOF 符保留
-
a+ :附加方式打开可读写,不存在建立该文件,存在写入的数据加到文件尾, EOF 符不保留
-
wb :打开二进制文件,只写 wb+: 打开或建立二进制文件,可读写
-
wt+: 打开或建立文本文件,可读写
-
t+: 打开文本文件,可读写,写的数据加在文本末尾 ab+: 打开二进制文件,可读写,写的数据加在文件末尾
由mode字符可知,上述如r、w、a在其后都可以加一个b,表示以二进制形式打开文件
返回值:
文件打开了,返回一个指向该打开文件的指针(FILE结构);文件打开失败,错误上存errorcode(错误代码)。
注意:在fopen操作后要进行判断,是否文件打开,文件真正打开了才能进行后面的读或写操作,如有错误要进行错误处理。
例如:
FILE *pfile=fopen(constchar *filename,"rb");
2.fclose函数
关闭一个文件流,使用fclose就可以把缓冲区内最后剩余的数据输出到磁盘文件中,并释放文件指针和有关的缓冲区
函数原型:
int fclose(FILE*stream)
/*
* @description :关闭一个已打开的流
* @param ‐ stream :文件指针(流)
* @return : 成功,返回0; 若失败,返回EOF
*/
3.fopen函数和fclose实战
- 创建demo2.c 文件
- 实战成功
代码:
#include <stdio.h>
int main()
{
FILE *fp = NULL;
int nRet = 0;
fp = fopen("mm","w");
if(fp == NULL)
{
printf("open failed!\n");
return -1;
}
printf("open success1\n");
nRet = fclose(fp);
if(nRet != 0)
{
printf("close failed!\n");
return -2;
}
printf("close success1\n");
return 0;
}