我试图从我的 main 函数返回一个更大的值,比如 1000,但是当我输入echo $?
显示0。
如果我返回一个较小的值(例如 100),它将显示正确的值。
My Code:
int main(void)
{
return 1000;
}
我们可以返回的值有限制吗?
这里有两个相关的概念:C 退出状态和 bash 返回代码。它们都涵盖 0-255 的范围,但 bash 将 126 以上的数字用于其自身目的,因此从程序中返回这些数字会很混乱。
为了安全起见,将退出状态代码限制为 0-127,因为这是最可移植的,至少是由http://docs.python.org/library/sys.html#sys.exit http://docs.python.org/library/sys.html#sys.exit.
C 退出状态放入 bash $?执行后变量,但 bash 使用 127 来指示“未找到命令”,因此您可能希望避免这种情况。Bash 参考页面 http://www.ofb.net/gnu/bash/bashref_43.html.
Bash 还使用 128-255 表示信号 - 它们表示进程被信号杀死:exit code = 128 + signal number
。因此,您也许可以使用接近 255 的数字,因为信号数字不太可能达到那么高。
除了这些通用准则之外,还有许多尝试来定义不同数字的含义:http://tldp.org/LDP/abs/html/exitcodes.html http://tldp.org/LDP/abs/html/exitcodes.html.
因此,如果您想从程序中返回任意整数,最好将其打印到标准输出,并使用捕获它VALUE=$(program)
从你的 bash 脚本中。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)