strerror函数

strerror函数

在linux编程下, 经常看到很多的函数调用的返回值都会有一句话, 错误代码存放在errno中. 比如 : open() write() creat() 函数就会把错误原因放入errno中. 最开始我也是很纳闷的, 这个是什么啊? 具体怎么看这个错误啊. 后面终于发现, 原来调用一个函数就可以解决了啊, 挺简单的.

就像这样.

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

int main()
{
    printf("%s\n", strerror(errno));

    return 0;
}

运行结果

rpz@funct:~$ ./a.out 
Success

strerror的函数.

char *strerror(int errnum)  // 返回一个指针错误字符串描述错误编号

strerror实在string.h这个头文件中的, 同样, errno也是存放在errno.h头文件中.

那么现在我们要修改 errno 的值, 来看一看有什么错误提示.

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

int main()
{
    for(int i = 0; i < 100; i++)
        printf("%d : %s\n", i, strerror(i));

    return 0;
}

运行结果:

rpz@funct:~$ ./a.out 
0 : Success
1 : Operation not permitted
2 : No such file or directory
3 : No such process
4 : Interrupted system call
5 : Input/output error
6 : No such device or address
7 : Argument list too long
8 : Exec format error
9 : Bad file descriptor
10 : No child processes

perror函数也是针对errno错误的. 可以了解一下这个函数.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值