fopen 和 fclose

来源:互联网 发布:python 中,math.sqrt 编辑:程序博客网 时间:2024/06/05 11:39

先创建一个流  

FILE * fp;


关于fopen ,有三个相关函数 fopen   fdopen    freopen

先看 fopen

原型: FILE * fopen(const char *path,const *char mode);

path: 要打开的文件  比如 当前目录下有个普通文件 叫做 hello,  那么要写成fopen("./hello",...);

如果是根目录下的home里的fs下的hello   写成fopen("/home/fs/hello",...);

mode: 文件的打开方式;具体有以下几种参数



r 或者rb: 打开文件,以只读的方式打开,该文件必须存在,否则失败,返回NULL

r+ 或者 r+b: 打开文件,可读可写,文件必须存在

w或者wb:打开文件,以只写方式打开,若文件里有内容,则清除内容。文件不存在则会创建;

w+或者w+b: 打开文件,可读可写,若文件里有内容,则清除内容。文件不存在则会创建;

a或者ab: 打开文件,只写,若文件有内容,则往里面追加你写的东西;文件不存在则创建;

a+或者a+b:打开文件,可读可写,若文件有内容,则往里面追加你写的东西;文件不存在则创建;



比如  当前目录下有个名叫hello的文件

那么这么写:  fp=fopen("./hello","a");

打开hello,追加的方式,写入;

若hello不存在,则创建。



如果上述代码成功,fp得到的是一个地址,失败,fp得到的是NULL;

通常这么写:

if(NULL == (fp=fopen("./hello","a+")))

{

perror("open fail");

return  -1;

}

打开文件hello,可读可写追加,若果打开失败,程序结束;


fclose();

原型:int fclose(FILE *stream);

stream: 已经打开过的流指针;

成功返回0;

失败返回EOF;


这么写: fclose(fp);

一般不加判断,因为基本不会报错。