首页 > 编程笔记

C语言ferror():检查文件操作是否出现错误

ferror() 是 C语言的一个标准库函数,定义在<stdio.h>头文件中。

ferror() 函数的功能是检查操作目标文件的过程中是否出现了错误。ferror() 函数的原型如下:
int ferror(FILE *stream);

参数

stream 是一个指向 FILE 类型的指针,代表要检查的文件。

返回值

如果操作文件过程中发生了错误,则函数返回一个非零值;否则,返回零。

ferror() 函数通常与文件读取和写入操作一起使用,以检测是否发生了错误。例如,由于磁盘空间不足、权限问题或其他原因而无法写入文件,ferror() 可用于检测这样的错误。

【实例】以下是一个 C语言示例代码,演示了如何使用 ferror() 函数。
#include <stdio.h>

int main() {
    FILE *file;

    // 以写入模式打开文件
    file = fopen("example.txt", "w");
    if (file == NULL) {
        perror("文件打开失败");
        return 1;
    }

    // 尝试写入文件
    if (fprintf(file, "Hello, World!") < 0) {
        if (ferror(file)) {
            perror("文件写入失败");
            // 关闭文件
            fclose(file);
            return 2;
        }
    }

    // 关闭文件
    fclose(file);

    printf("文件成功写入。\n");

    return 0;
}
在这个示例中,先使用 fopen() 以写入模式打开一个文件,然后尝试用 fprintf() 将字符串写入文件,如果写入操作返回负值,用 ferror() 检测是否发生了错误,并使用 perror() 打印具体的错误信息,最后用 fclose() 关闭文件。

推荐阅读