C 库 - fopen() 函数



C 库函数 FILE *fopen(const char *filename, const char *mode) 使用给定的模式打开 `filename` 指向的文件名。它打开一个文件并返回一个指向 FILE 对象的指针,该指针可用于访问文件。

语法

以下是 C 库函数 fopen() 的语法:

FILE *fopen(const char *filename, const char *mode);

参数

此函数接受以下参数:

  • filename:表示要打开的文件名的字符串。这可以包括绝对路径或相对路径。
  • mode:表示应以何种模式打开文件的字符串。常用模式包括:
    • "r":以只读方式打开。文件必须存在。
    • "w":以写入方式打开。创建空文件或截断现有文件。
    • "a":以追加方式打开。将数据写入文件末尾。如果文件不存在则创建文件。
    • "r+":以读写方式打开。文件必须存在。
    • "w+":以读写方式打开。创建空文件或截断现有文件。
    • "a+":以读写和追加方式打开。如果文件不存在则创建文件。

返回值

如果文件成功打开,fopen 函数返回一个 FILE 指针。如果无法打开文件,则返回 NULL。

示例 1:读取文件

此示例以读取模式打开名为 example.txt 的文件,并将内容逐个字符打印到控制台。

以下是 C 库 fopen() 函数的示例。

#include <stdio.h>

int main() {
   FILE *file = fopen("example.txt", "r");
   if (file == NULL) {
       perror("Error opening file");
       return 1;
   }

   char ch;
   while ((ch = fgetc(file)) != EOF) {
       putchar(ch);
   }

   fclose(file);
   return 0;
}

输出

以上代码产生以下结果:

(Contents of example.txt printed to the console)

示例 2:追加到文件

在这里,我们以追加模式打开名为 log.txt 的文件,在文件末尾添加新的日志条目,然后关闭文件。

#include <stdio.h>

int main() {
   FILE *file = fopen("log.txt", "a");
   if (file == NULL) {
       perror("Error opening file");
       return 1;
   }

   const char *log_entry = "Log entry: Application started";
   fprintf(file, "%s\n", log_entry);

   fclose(file);
   return 0;
}

输出

执行上述代码后,我们得到以下结果:

(log.txt contains the new log entry "Log entry: Application started" appended to any existing content)
广告