<errno.h> 是C语言标准库中的头文件,定义了一些宏和全局变量,用于处理错误情况。这些错误代码通常由标准库函数设置,以指示函数调用失败的原因。

以下是 <errno.h> 中一些常见的宏和全局变量:

errno 全局变量
#include <errno.h>

extern int errno;

errno 是一个全局变量,用于存储最近一次发生的错误代码。在标准库函数调用失败时,可以检查 errno 的值以确定错误的原因。

perror 函数
#include <stdio.h>

void perror(const char *s);

perror 函数用于将最近一次发生的错误信息输出到标准错误流,并在错误信息前加上用户提供的字符串 s。

strerror 函数
#include <string.h>

char *strerror(int errnum);

strerror 函数将错误代码 errnum 转换为相应的错误消息字符串,并返回这个字符串的指针。

示例
#include <stdio.h>
#include <errno.h>
#include <string.h>

int main() {
    FILE *file = fopen("nonexistent_file.txt", "r");

    if (file == NULL) {
        perror("Error");
        printf("Error code: %d\n", errno);

        // 使用 strerror 获取详细的错误消息
        printf("Error message: %s\n", strerror(errno));
    } else {
        // 处理文件操作
        fclose(file);
    }

    return 0;
}

在上述示例中,fopen 函数尝试打开一个不存在的文件,由于文件不存在,fopen 失败,并设置了 errno 的值。perror 函数用于输出错误信息,而 strerror 函数则用于获取详细的错误消息字符串。

这些函数和 errno 变量是在处理错误时非常有用的工具,它们能够提供有关错误原因的有用信息。在实际编程中,特别是在系统级编程中,对这些机制的了解和使用是很重要的。


转载请注明出处:http://www.zyzy.cn/article/detail/13547/C 语言