【发布时间】:2016-05-03 20:13:53
【问题描述】:
我试图以某个退出号退出我的主函数,但它总是以 0 退出。例如,代码:
printf("command exited with error: %i\n", commandExitError);
if(commandExitError > 0)
exit(commandExitError);
if(openError > 0)
exit(openError);
printf("I shouldn't see this if there was an error");
return 0;
有一个奇怪的行为,如果commandExitError 为0,但openError 为1,那么它会以错误1 退出。但是,如果commandExitError 大于0,它仍然会以0 退出!例如,这是带有commandExitError > 0的一些输出:
命令退出错误:512
请注意,我们从未到达 print 语句“我不应该看到这个....”然后,获取我的程序的退出状态,回显 $?
0
我们看到我的程序仍然以 0 退出,尽管它应该清楚地以 512 退出。
【问题讨论】:
-
请复制准确的终端命令和输出。
-
退出值是一个 8 位数量 —
512 % 256 == 0。尝试 513、514、3、4、133、134 等。