说明

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的值。

语法

#包括

void perror(const char * s);

#包括

const char * const sys_errlist [];
int sys_nerr;
int errno; / 不是真的这样声明;参见errno(3)/

glibc的功能测试宏要求(请参阅feature_test_macros(7)):

sys_errlistsys_nerr
从glibc 2.19开始:
_DEFAULT_SOURCE
Glibc 2.19及更早版本:
_BSD_SOURCE

属性

有关本节中使用的术语的说明,请参见attribute(7)。

InterfaceAttributeValue
perror()Thread safetyMT-Safe race:stderr

另外参见

err(3),errno(3),error(3),strerror(3)

备注

外部sys_nerr和sys_errlist由glibc定义,但在中。

出版信息

这个页面是Linux手册页项目5.08版的一部分。有关项目的说明、有关报告错误的信息以及此页面的最新版本,请访问https://www.kernel.org/doc/man-pages/

遵循规范

perror(),错误号:POSIX.1-2001,POSIX.1-2008,C89,C99、4.3BSD。

外部sys_nerr和sys_errlist源自BSD,但未在POSIX.1中指定。

PERROR - Linux手册页

Linux程序员手册 第3部分
更新日期: 2019-03-06

名称

perror-打印系统错误消息

日期:2019-08-20 18:01:29 来源:oir作者:oir