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上的。
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上的。
相关文章推荐
- [C#] 如何调用Windows系统发送错误API
- Linux 系统更新命令行模式,出错原因,软件更新器更新失败,系统提示已为最新版本,问题如何解决
- Linux 调用系统命令并截获标准输出(stdout)和错误输出(stderr)
- linux系统中如何查看日志
- 如何查看linux系统是那个版本
- Linux系统下如何查看及修改文件读写权限
- lalala~ 我的第一篇linux学习笔记_如何查看系统模块
- Linux下如何查看系统启动时间和运行时间
- 如何查看linux系统是那个版本
- 如何让Symbian S60系统出错时显示更多的错误信息
- Linux系统内存错误产生的原因及调试方法
- Linux系统下如何查看及修改文件读写权限
- 在linux操作系统中如何截获系统调用
- 如何查看Linux系统是64位还是32位
- 如何查看linux系统是那个版本
- Linux系统下如何查看已经登录用户
- 如何在Linux系统中添加新的系统调用
- Linux系统内存错误产生的原因及调试方法(段错误|core dumped) 谢谢这篇文章的作者
- Linux系统下如何查看及修改文件读写权限
- 如何在Linux中添加新的系统调用