您的位置:首页 > 运维架构 > Linux

linux调用系统api出错,如何查看错误原因?

2017-12-13 19:18 411 查看
当调用系统api出错后,可以通过打印errno这个变量来获得错误码值,

errno变量定义在/usr/include/errno.h里,

#ifndef errno
extern int errno;
#endif可以看到这是个全局变量,
当调用系统api出错后,系统会把错误码赋值给errno,那么知道了错误码,怎么知道对应意思呢?

最笨的办法是查看头文件里错误码的说明,

比如查看/usr/include/asm-generic/errno-base.h和/usr/include/asm-generic/errno.h

这个显得麻烦,有个简单的办法是调用

char *strerror(int errnum);

返回错误码对应的描述信息。

或者调用void perror(const char *s);

它会先打印s,再打印错误码描述,注意这些都是输出到stderr上的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: