错误输出

1、void perror(const char *s); perror ("open_port");

#include <stdio.h>

perror ( )用来将上一个函数发生错误的原因输出到标准设备(stderr)。参数 s 所指的字符串会先打印出,后面再加上错误原因字符串。此错误原因依照全局变量error的值来决定要输出的字符串。

2、char * strerror(int errnum);

#include <string.h>

此函数将errnum(它通常就说errno值)映射为一个出错信息字符串,并返回此字符串的指针。

3、区别

perror是将errno对应的错误消息的字符串打印到标准错误输出上,即stderr2上,若你的程序将标准错误输出重定向到/dev/null,那就看不到了,就不能用perror了。而 strerror的作用只是将errno对应的错误消息字符串返回,要怎样处理完全由你自己决定。通常我们选择把错误消息保存到日志文件中,即写文件,所以通常可以用fprintf(fp, "%s", strerror(errno))将错误消息打印到fp指向的文件中。其中perrorerrno对应的错误消息集合跟strerror是一样的,也就是说不会漏掉某些错误。

原文

http://www.cnblogs.com/zjfdbz/archive/2012/12/16/2821061.html

posted @ 2013-04-21 11:17  浪里飞  阅读(284)  评论(0编辑  收藏  举报