您的位置:首页 > 其它

perror和strerror的使用和区别

2017-08-07 22:19 344 查看
(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出来。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  perror strerror