PERROR - Linux手册页
Linux程序员手册 第3部分
更新日期: 2019-03-06
名称
perror-打印系统错误消息
语法
#包括
void perror(const char * s);
#包括
const char * const sys_errlist [];
int sys_nerr;
int errno; / 不是真的这样声明;参见errno(3)/
glibc的功能测试宏要求(请参阅feature_test_macros(7)):
sys_errlist,sys_nerr:
从glibc 2.19开始:
_DEFAULT_SOURCE
Glibc 2.19及更早版本:
_BSD_SOURCE
说明
perror()函数在标准错误上生成一条消息,描述在调用系统或库函数期间遇到的最后一个错误。
首先(如果s不为NULL且* s不是空字节(aq \ 0aq)),则打印参数字符串s,后跟冒号和空格。然后出现一条错误消息,对应于errno的当前值和换行符。
为了最有用,参数字符串应包括引起错误的函数的名称。
可以由errno索引的全局错误列表sys_errlist []可用于获取不带换行符的错误消息。表中提供的最大消息号为sys_nerr-1。直接访问此列表时要小心,因为可能尚未将新的错误值添加到sys_errlist []。如今不建议使用sys_errlist [];请改用strerror(3)。
当系统调用失败时,它通常返回-1并将变量errno设置为描述错误原因的值。 (这些值可以在中找到。)许多库函数也是如此。函数perror()用于将该错误代码转换为人类可读的形式。请注意,在成功的系统调用或库函数调用之后,errno是未定义的:即使成功,此调用也可能会更改此变量,例如,因为它内部使用了其他失败的库函数。因此,如果失败的调用没有紧随其后的是对perror()的调用,则应该保存errno的值。
属性
有关本节中使用的术语的说明,请参见attribute(7)。
Interface | Attribute | Value |
perror() | Thread safety | MT-Safe race:stderr |
遵循规范
perror(),错误号:POSIX.1-2001,POSIX.1-2008,C89,C99、4.3BSD。
外部sys_nerr和sys_errlist源自BSD,但未在POSIX.1中指定。
备注
外部sys_nerr和sys_errlist由glibc定义,但在中。
出版信息
这个页面是Linux手册页项目5.08版的一部分。有关项目的说明、有关报告错误的信息以及此页面的最新版本,请访问https://www.kernel.org/doc/man-pages/。