微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Linux如何通过错误号得到错误描述

在Linux(特别是我有Ubuntu 14),如果一些程序终止与错误,我可以通过$?获得数值错误代码$? variables

$ ./failing_app $ echo $?

然而,这个号码本身并没有告诉我多less,我怎么得到错误名称和描述?

在$ man errno有一个错误列表,但它只给出名称,而不是数字值。

我search谷歌和结果是相当奇怪的:例如我有一个玩具锈病程序,我试图访问数组元素越界。 程序恐慌和$? 是101 ,但是据说对应于Network unreachable错误,这没有任何意义。

在ubuntu中将input从文件redirect到Java JAR

我如何在Linux上用C语言获得我的IP地址?

SVN没有提交,显示文件不受控制

为什么禁用一个本地中断或抢占会导致整个系统4 cpu无响应

星号:找不到命令

(客户端)直接连接到Redis的JavaScript?

将本地化语言支持添加到BASH脚本

multithreading程序和fork():替代或安全的实现

如何创build共享库特定的单例实例

权限不足推动通过智能HTTP Git共享回购

程序的退出状态(shell中的$? )与C errno无关。

在C程序中,通常退出状态来自退出的参数或main的返回值。 约定是0表示成功退出(对于shell而言是true),其他值是失败(ir false)。

但是,如果一个程序因接收到信号而死亡,shell会设置$? 到128加上信号编号。 例如,在分段错误( SIGSEGV ,即11)上, $? 将是139。

要列出信号编号,我运行kill -l 。

没有单一的中央定义权威。 每个程序都将自己的语义分配给错误代码。 好的在手册页面有文档; 例如,请参阅例如GNU的grep和xargs手册页。

退出(3) Linux手册页面也注意到“BSD试图标准化退出代码”。 BSD sysexits (3)手册页实际上是一个很好的推荐阅读,所示的总线,几乎不会超过有限数量错误情况。

内核有一个更详细和详细的记录可能的错误及其原因,但这显然限于系统调用,并没有解决应用程序级错误。 对于Linux,请参阅errno(3)手册页。

高级Bash脚本指南有一个关于公共约定的部分; http://tldp.org/LDP/abs/html/exitcodes.html#EXITCODESREF–但是就像一般的ABS一样,它是标准,惯例,作者的个人观点,猜测和谎言的邪恶组合。 (表中的退出代码都不是“保留的”,尽管它是这样说的,引用表的文本强调了这个不正确的事实)。

这个链接提供了数字错误的列表。 希望这是你在找什么。 http://www.thegeekstuff.com/2010/10/linux-error-codes/

此外,在我的系统上,我看到文件/usr/include/asm-generic/errno-base.h有错误的定义以及错误号码。 这将是比链接更好的参考。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐