为什么程序 return 的退出代码不是我指定的?
Why does the program return with an exit code other than I specified?
这是一个简单的程序:
int main() {
return 0;
}
退出代码是0
。
如果我写:
int main() {
return 700;
}
退出代码是188
。
为什么此处的退出代码是 188
而不是 700
?
而 C 中的主函数 returns 一个 int
, operating systems don't necessarily use int
as the error code.
700
在二进制中是 1010111100
.
将该值截断为八位会产生 10111100
.
这等于十进制的 188
。
这意味着您的 OS 使用八位错误代码。1
1 或者可能是九位,因为第 8th 位(请注意,我们从 0 开始计数)是 0
这里。这是极不可能的,因为 9
不是 2
的幂,不过,数据宽度的约定也是如此。
这是一个简单的程序:
int main() {
return 0;
}
退出代码是0
。
如果我写:
int main() {
return 700;
}
退出代码是188
。
为什么此处的退出代码是 188
而不是 700
?
而 C 中的主函数 returns 一个 int
, operating systems don't necessarily use int
as the error code.
700
在二进制中是 1010111100
.
将该值截断为八位会产生 10111100
.
这等于十进制的 188
。
这意味着您的 OS 使用八位错误代码。1
1 或者可能是九位,因为第 8th 位(请注意,我们从 0 开始计数)是 0
这里。这是极不可能的,因为 9
不是 2
的幂,不过,数据宽度的约定也是如此。