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出来。
头文件: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的区别 http://blog.csdn.net/lalor/article/details/7555019
- 转:perror和strerror的区别
- linux下错误的捕获:errno、perror和strerror的使用
- perror 和 strerror 区别
- perror 和 strerror 区别
- perror和strerror的区别
- perror 和 strerror 的区别
- linux下错误的捕获:errno、strerror和perror的使用
- perror strerror使用方法
- perror()与strerror()的应用及区别 man手册查询
- sqlite3 api sqlite3_busy_timeout 与 sqlite3_busy_handler 的使用与区别
- sqlserver中delete、update中使用表别名 和oracle的区别
- Oracle RAID区别使用 2
- 交换机、集线器、路由器区别和使用浅谈
- memset memcpy strcpy 使用和区别 (转)
- Python中列表和元组的使用方法和区别详解
- java web 过滤器跟拦截器的区别和使用
- java web 过滤器跟拦截器的区别和使用
- LIB和DLL的区别与使用
- slice(),splice(),split(),substring(),substr()使用方法和区别