[字符串和内存函数]错误信息报告函数strerror详解

本文介绍了C库函数strerror的作用,它将错误代码转化为易读的错误信息字符串,同时详细列举了errno全局变量及其常见错误码含义。通过示例展示了如何使用strerror处理文件操作中的错误。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

strerror介绍

strerror是一个C库函数,用于将错误代码转换为对的错误信息字符串。它接受一个整数参数errno,返回一个指向错误信息字符串的指针。 

errno是一个全局变量,可以直接使用。它在C语言中用于表示发生错误时的错误码。它是一个整数,通常被定义为指向一个 extern int 类型的宏。当函数或系统调用发生错误时,它会被设置为相应的错误码,以便程序可以根据错误码进行适当的错误处理。

errno错误码 

`errno` 是一个全局变量,在C语言中用来表示发生的错误。它的取值是一个整数,各个操作系统和编译器可能有不同的取值范围和含义。下面是一些常见的 `errno` 错误码取值及其含义:

1. 2(ENOENT):表示文件或目录不存在。
2. 13(EACCES):表示权限不足,无法访问文件或目录。
3. 9(EBADF):表示无效的文件描述符。
4. 11(EAGAIN):表示资源临时不可用。
5. 22(EINVAL):表示无效的参数。
6. 12(ENOMEM):表示内存不足。
7. 5(EIO):表示输入输出错误。
8. 20(ENOTDIR):表示路径名不是一个目录。
9. 17(EEXIST):表示文件或目录已存在。
10. 28(ENOSPC):表示没有足够的空间。

例子 

以下是strerror函数的示例用法:

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

int main() {
    FILE *file = fopen("nonexistent_file.txt", "r");
    if (file == NULL) {
        int error_code = errno;
        const char *error_message = strerror(error_code);
        printf("Error: %s\n", error_message);
    }
    return 0;
}

输出为: Error: No such file or directory
 

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

CaojunjiaOnly

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值