什么是好的Linux退出错误代码策略?

Chr*_*anz 5 unix linux error-handling

我有几个独立的可执行Perl,PHP CLI脚本和C++程序,我需要开发一个退出错误代码策略.其他程序使用我exec()在PHP中创建的包装类调用这些程序.所以,我将能够得到一个错误代码.根据该错误代码,调用脚本将需要执行某些操作.

我做了一些研究,似乎1-254(或者只是1-127)范围内的任何内容都可以是用户定义的错误代码的公平游戏.

我只是想知道在这种情况下其他人如何处理错误处理.

Nik*_*man 8

唯一的约定是为了成功返回0,对于错误返回0以外的其他值.大多数知名的unix程序记录了他们可以返回的各种返回代码,您也应该如此.尝试为任意程序可能返回的所有可能的错误代码制作一个公共列表没有多大意义,否则你最终会像其他一些操作系统那样成千上万的错误代码,即便如此,它也不会永远不会涵盖您想要返回的特定类型的错误.

所以要保持一致,并确保记录您决定使用的任何方案.


小智 6

1-127是可用范围.任何超过127的东西应该是"异常"退出 - 由信号终止.

当你在它时,考虑使用stdout而不是退出代码.退出代码按传统用于表示成功,失败,并且可能是另一个状态.而不是使用退出代码,尝试使用stdout expr和wc使用它.然后,您可以在调用者中使用反引号或类似内容来提取结果.

  • 为了清楚起见,父进程总是可以判断它是一个信号还是一个正常的退出...这是_shell_将信号映射到129-254为`$?`. (2认同)