Linux/bash中程序返回值的有效范围是多少?

ysa*_*sap 12 c bash return-value ubuntu-10.04

我有一个C程序,它返回一个整数值.我很惊讶地发现,当从shell提示符检查返回值时,我得到的值为模数256.

/* prog.c */
int main(...) { return 257; }
Run Code Online (Sandbox Code Playgroud)

-

> ./prog.e
> echo $?  
1
Run Code Online (Sandbox Code Playgroud)
  • 为什么我看不到整数?
  • 这种行为记录在哪里?
  • 如何将整个32位值获取到shell?

Dou*_*rop 10

当程序退出时,它可以使用退出状态向父进程返回有关终止原因的少量信息.这是一个0到255之间的值,退出进程将作为参数传递给exit.

http://www.gnu.org/s/hello/manual/libc/Exit-Status.html

或者:

http://en.wikipedia.org/wiki/Exit_status

来自"posix返回代码"和"c返回代码"各自的Google搜索.