perror和strerror的使用和区别(转)

(1) perror 
头文件:stdio.h 
void perror(const char *msg); 
它是基于errno的当前值,在标准错上产生一条出错信息,然后返回。 
它先输出由msg字符串,然后是一个冒号后头接着对应于errno值的出错信息。 
例: perror(“sendto”); 
打印出:sendto: Permission denied 
(2)strerror 
头文件:string.h 
char * strerror(int errnum); 
此函数将errnum(它通常就说errno值)映射为一个出错信息字符串,并返回错误此字符串 
(2.1) 我们看errno的值: 
在头文件: include errno.h 
例: 
printf(“errno is: %d\n”,errno); 
printf(“errno is: %d\n”,strerror(errno)); 
  结果:errno is 13 
   Permission denied 
(3)perror和strerror区别和联系: 
可以看出: 
(3.1)perror和strerror都是根据errno的值打印错误信息的。 
(3.2)perror是将errno对应的错误消息的字符串打印到标准错误输出上,即stderr或2上,若你的程序将标准错误输出重定向到/dev/null,那就看不到了,就不能用perror了。 
而 strerror的作用只是将errno对应的错误消息字符串返回.你可以自己决定咋样处理字符串,比如可以存到日志,也可以直接printf出来。
--------------------- 
作者:diediexiaomi 
来源:CSDN 
原文:https://blog.csdn.net/diediexiaomi/article/details/76862248 
版权声明:本文为博主原创文章,转载请附上博文链接!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值