首页 > 编程笔记

C语言perror():打印errno的值

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

perror() 函数用于打印最近的库函数执行出错的消息,消息基于全局变量 errno,很多标准库函数执行出错时都会设置 errno 的值。

perror() 函数的原型如下:
void perror(const char *str);

参数

str: 一个指向字符串的指针,通常用来对函数发生的错误消息做进一步的描述。

当 str 为 NULL 时,则 perror() 函数直接打印函数执行出错的消息。

返回值

无,perror() 函数没有返回值。

【实例】以下的 C语言代码示例演示了 perror() 函数的功能和用法。
#include <stdio.h>
#include <stdlib.h>
#include <errno.h>

int main() {
    FILE *file = fopen("non_existent_file.txt", "r");
    if (file == NULL) {
        // errno 现在已被 fopen 设置,描述错误的原因
        perror("Error opening file"); // 打印 "Error opening file: <系统的错误消息>"
        return EXIT_FAILURE;
    }

    // 正常处理文件
    fclose(file);
    return EXIT_SUCCESS;
}
输出结果为:

Error opening file: No such file or directory

示例中尝试打开一个不存在的文件,由于文件不存在,fopen() 将返回 NULL 并设置全局变量 errno。然后我们调用 perror() 来打印错误消息,该消息将包括由 errno 表示的特定错误原因。

perror() 非常有用,因为它提供了一个快速、简洁的方法来通知用户有关程序中特定库函数调用失败的原因。

推荐阅读