为了账号安全,请及时绑定邮箱和手机立即绑定

ExitCodes大于255,可能吗?

ExitCodes大于255,可能吗?

叮当猫咪 2019-07-25 10:26:28
ExitCodes大于255,可能吗?如果是,在哪个操作系统,shell或其他什么?考虑下面的java程序(我只是以java为例,任何语言对这个问题都有好处,更多的是关于操作系统):public class ExitCode {     public static void main(String args[]) {         System.exit(Integer.parseInt(args[0]));     }}在Linux和bash上运行它,它总是返回不等于255的值,例如(echo $?打印上一个执行命令的退出代码)> java ExitCode 2; echo $?2> java ExitCode 128; echo $?128> java ExitCode 255; echo $?255> java ExitCode 256; echo $?0> java ExitCode 65536; echo $?0编辑:下面的(只有,到目前为止)答案完全解释了在UNIX上发生的事情。我仍然想知道其他操作系统。
查看完整描述

3 回答

?
MMMHUHU

TA贡献1834条经验 获得超8个赞

在现代Windows上,操作系统本身和默认控制台shell(CMD.EXE)至少在整个32位有符号整数范围内接受并显示退出代码。运行上面的示例CMD.EXE会给出您要求的退出代码:


> java ExitCode 2

> echo %errorlevel%

2


> java ExitCode 128

> echo %errorlevel%

128


> java ExitCode 255

> echo %errorlevel%

255


> java ExitCode 256

> echo %errorlevel%

256


> java ExitCode 65536

> echo %errorlevel%

65536

Windows并不真正具有Unix信号的概念,也没有试图劫持退出代码以添加额外信息,因此只要你的shell(或任何程序最终读取退出代码)也不会这样做,你应该找回你退回的退出代码。幸运的是,使用Microsoft的C运行时(包括使用MS Visual C ++编译的所有程序)的程序保留退出代码和退出进程。


查看完整回答
反对 回复 2019-07-25
?
绝地无双

TA贡献1946条经验 获得超4个赞

Windows有更多退出代码,超过14,000。(我相信你经常在自己的屏幕上看到一些)。

来了:


查看完整回答
反对 回复 2019-07-25
  • 3 回答
  • 0 关注
  • 1072 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信