在C语言中fopen()函数用来打开文件。该函数声明在stdio.h中。它的第一个参数是待打开文件的名称,更确切的说是一个包含文件名的字符串地址。第二个参数是一个字符串,指定待打开文件的模式。
下面表格中列出了常见的文件操作模式:
当程序成功打开文件后,fopen()函数将返回一个文件指针,该文件指针的类型是指向FILE的指针,FILE是一个定义在stdio.h中的派生类型。也就是一个结构体。定义如下:
struct _iobuf {
char *_ptr; //文件输入的下一个位置
int _cnt; //当前缓冲区的相对位置
char *_base; //指基础位置(即是文件的其始位置)
int _flag; //文件标志
int _file; //文件的有效性验证
int _charbuf; //检查缓冲区状况,如果无缓冲区则不读取
int _bufsiz; //缓冲区大小
char *_tmpfname; //临时文件名
};
typedef struct _iobuf FILE;
通过typedef定义了 文件类型 的别名: “FILE”。它里面包含了当前打开文件的描述信息。
在不同的系统中FILE结构体里面的内容也是不一样的,所以不用关注FILE结构体中的具体内容,只要会使用就行了。
当文件打开后需要关闭时,要调用fclose()函数就行文件的关闭,它只需要一个参数,就是使用fopen()函数打开文件后返回的FILE类型指针。如果关闭成功返回0,如果关闭失败则返回EOF;
下面通过一个例子来演示这两个函数的用法:
int main()
{
FILE *fp;
int ret;
/* 打开文件 */
fp = fopen("123.txt","r");
if(fp==NULL)
puts("打开失败!");
else
puts("打开成功!");
/* 关闭文件 */
ret = fclose(fp);
if(ret == 0)
puts("关闭成功!");
else
puts("关闭失败!");
system("pause");
return 0;
}
使用fopen()函数打开一个记事本,然后在使用fclose()函数关闭记事本。
当文件存在时打开和关闭都成功,记事本如果和和当前C文件在一个目录中,在填写文件名的时候就不需要带路径。如果要打开的记事本和当前C文件不在同一个目录中,输入文件名的时候需要输入文件的全路径。如果打开的文件路径不存在,则打开和关闭文件都会失败。
版权说明 : 本文为转载文章, 版权归原作者所有 版权申明
原文链接 : https://blog.csdn.net/qq_20222919/article/details/121074023
内容来源于网络,如有侵权,请联系作者删除!