fopen函数用于打开一个文件,并返回一个文件指针,该指针可以用于后续的文件操作。其定义如下:
FILE *fopen(const char *filename, const char *mode);
其中,filename
为要打开的文件的名称,可使用绝对地址或相对地址表示;mode
为文件打开模式,主要包括:? r
:以只读方式打开文件。文件必须存在;
? w
:以只写方式打开文件。如果文件不存在,则创建一个新文件;如果文件存在,则删除其内容;
? a
:以追加模式打开文件。如果文件不存在,则创建一个新文件;如果文件存在,则在文件末尾添加内容;
? r+
:以读写方式打开文件。文件必须存在;
? w+
:以读写方式打开文件。如果文件不存在,则创建一个新文件;如果文件存在,则删除其内容;
? a+
:以读写方式打开文件。如果文件不存在,则创建一个新文件;如果文件存在,则在文件末尾添加内容。
若函数执行成功,则返回一个指向该文件的指针;若执行失败,则返回NULL。
fclose
函数用于关闭已打开文件.其定义如下:
int fclose(FILE *stream);
其中,stream
为要关闭的文件的指针,该指针是由fopen
函数返回的。
若函数执行成功,则返回0;若失败,则返回EOF。
写一个 用于打开一个文件并读取其内容的代码:
#include <stdio.h> // 引入标准输入输出库,用于文件操作和打印输出
int main(){ // 主函数入口
FILE * file_ = fopen("/home/zhouweiqing/14/src/aa.txt","r"); // 使用fopen函数打开文件,文件路径为"/home/zhouweiqing/14/src/aa.txt",模式为只读("r")
if(file_ == NULL) { // 如果文件打开失败,file_指针将为NULL
perror("打开失败"); // 打印错误信息,提示"打开失败"
}
char buffer[1024]; // 定义一个字符数组,用于存储从文件中读取的内容,最大长度为1024
while (fgets(buffer, sizeof(buffer), file_)) { // 使用fgets函数从文件中读取内容,每次最多读取sizeof(buffer)个字符,直到文件结束或读取到换行符、EOF等
printf("%s", buffer); // 打印从文件中读取的内容
}
fclose(file_); // 使用fclose函数关闭已打开的文件
}
运行得到结果:
可以看到成功读取到hello!