C 库 - perror() 函数



C 库的 perror() 函数旨在将描述性错误消息打印到标准错误流 (stderr),这有助于调试和理解程序中出现的问题。

语法

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

void perror(const char *str);

参数

此函数只接受一个参数:

  • str: 指向一个空终止字符串的指针,该字符串将在错误消息之前打印。如果此字符串不为 NULL 且不为空,则其后将跟一个冒号和一个空格 (: )。此字符串通常表示错误发生时的上下文或函数。

返回值

perror() 不返回值。它是一个 void 函数。其主要目的是将错误消息打印到 stderr。

示例 1:打开一个不存在的文件

此示例尝试打开一个不存在的文件。fopen() 设置 errno 以指示错误,而 perror() 打印有关失败的描述性消息。

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

#include <stdio.h>
#include <errno.h>

int main() {
    FILE *file = fopen("non_existent_file.txt", "r");
    if (file == NULL) {
        perror("Error opening file");
    } else {
        fclose(file);
    }
    return 0;
}

输出

以上代码产生以下结果:

Error opening file: No such file or directory

示例 2:在不可写目录中创建文件

此示例尝试在用户没有写权限的目录中创建文件。fopen() 失败,将 errno 设置为 EACCES,而 perror() 打印相应的错误消息。

#include <stdio.h>
#include <errno.h>

int main() {
    FILE *file = fopen("/non_writable_directory/new_file.txt", "w");
    if (file == NULL) {
        perror("Error creating file");
    } else {
        fclose(file);
    }
    return 0;
}

输出

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

Error creating file: Permission denied
广告