如果是,在哪个操作系统,shell或其他什么?
考虑下面的java程序(我只是以java为例,任何语言对这个问题都有好处,更多的是关于操作系统):
public class ExitCode {
public static void main(String args[]) {
System.exit(Integer.parseInt(args[0]));
}
}
Run Code Online (Sandbox Code Playgroud)
在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
Run Code Online (Sandbox Code Playgroud)
编辑:下面的(只有,到目前为止)答案完全解释了在UNIX上发生的事情.我仍然想知道其他操作系统.
我在ac API中遇到了一个is_equals()函数,它返回1表示非相等的sql表(false),0表示相等的sql表(true).我只是在我的代码上运行测试用例后才意识到这一点,一个用于正面示例,另一个用于负面,它们都失败了,起初没什么意义.API中的代码没有错误,因为输出在其文档中正确记录.
我的问题 - 是否存在颠倒的世界/平行宇宙/编码语言,这种逻辑符号是否正常?通常不是1吗?API的编码器是否出错?