C语言与C++程序设计语言 fopen()
函数用于打开文件并对数据进行添加、更新、创建等操作。在本教程中,我们将学习有关 fopen()
功能。
null
fopen()函数语法
fopen()
函数由标准C库提供。fopen()函数具有以下语法。
FILE *fopen(const char *FILENAME, const char *MODE)
- `FILE*`是fopen()函数的返回类型,它是指向文件结构的指针。此文件指针用于添加、更新等操作。
- `const char*FILENAME`只是fopen()函数将打开的文件名。
- `const char*MODE`是文件打开模式,它将设置文件操作的行为,如只读、写、追加等。
函数将返回一个指向成功执行时打开的文件的文件指针。如果有错误,返回值将为NULL,全局变量 errno
将为相关错误设置。
文件打开模式
在开始fopen()函数的示例之前,我们将学习文件打开模式。文件打开模式设置和限制文件访问类型,如只读、更新、不存在时创建文件等。文件模式用字符和+号表示。
- `“r”`用作读取文件。这将以只读方式打开文件,并且在此模式下无法编辑该文件。正如预期的那样,文件应该存在于不会自动创建的位置。
- `“w”`将创建一个空文件进行写入。如果文件已经存在,现有文件将被删除或擦除,新的空文件将被使用。使用这些选项时要小心。
- `“a”`用于将新数据追加到指定的文件中。如果文件不存在,将创建该文件。
- `“r+”`模式将打开要更新的文件,该文件将提供读写权限。但文件必须已经存在,否则将不会创建并抛出错误。
- `“w+”`将为读取和写入创建一个空文件。
- `“a+”`将打开一个文件进行读取和追加。
相关文章: 文件操作,在C中打开、写入和关闭文件
打开文件进行读取
我们将从一个简单的示例开始,在这个示例中,我们将打开一个名为 myfile.txt
这是一个文本文件。但请记住,文件的类型或内容对于fopen()函数并不重要。
#includeint main () { //File pointer for "myfile.txt" FILE *fp; int c; //Open the file and set to pointer fp fp = fopen("myfile.txt","r"); //Read file character by character and //put to the standard ouput while(1) { c = fgetc(fp); if( feof(fp) ) { break ; } printf("%c", c); } //Close the file pointer fclose(fp); return(0);}
我们将编译源代码文件 read_myfile.c
以下是 gcc
命令。
$ gcc read_myfile.c -o read_myfile
打开文件进行写入
我们也可以使用 "a"
用于写入或附加到现有文件中。在本例中,我们将添加以下名为 myfile.txt
.
I am new line
#includeint main () { //File pointer for "myfile.txt" FILE *fp; int c; //Open the file and set to pointer fp fp = fopen("myfile.txt","a"); //Add or append new line to myfile.txt // by using fp pointer fputs("I am a new line",fp); //Close the file pointer fclose(fp); return(0);}
关闭文件
由于fopen()函数用于在操作完成后打开文件,因此我们必须关闭该文件。 fclose()
函数用于使用此文件指针关闭给定文件并释放资源。在前面的示例中,作为最后一个操作,我们关闭了如下所示的文件。
fclose(fp);
fopen()错误
使用fopen()函数打开文件时,可能会出现不同类型的错误。在这里,我们将提供一些最可能的。
- `EACCES`与没有指定操作权限的位置相关。
- `当mode参数的值无效时,EINVAL`将引发。
- `EINTR`在fopen()期间捕获到信号时将升高。
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END