我应该怎么做才能从命令行获得c程序的全部返回值?

我有一个简单的C程序"./my_program"

 #include <stdio.h> int main (int argc , char **argv) { unsigned int return_result = 0x474; printf("return_result = %d = 0x%x \n",return_result,return_result); return return_result; } 

结果,这个程序打印:

 return_result = 1140 = 0x474 

我想在bash脚本中获得c程序的返回值。 根据这个链接反正从命令行得到c程序的返回值? 我应该从$获得这个variables?

但是当我发起这样的命令后果:

 ./my_program echo $? 

我明白了

 116 

显然,116 = 0x74(最低字节)。 但我想获得整个unsigned int值。 哪里不对? 我应该怎么做才能从命令行获得c程序的全部返回值? 这不仅仅是“unsigned int”types。 如果我创build了一些复杂的types,例如结构,我该怎么办?

我试过这个:

 return ((unsigned int) return_result_section_size); 

它不起作用。

Unix上的退出代码被限制为一个字节 。 如果你想输出更多,你可以把它写到标准输出或文件。

那么为什么C标准判定main返回int而不是char ? 我不知道…

从main返回的值可以使用echo $?打印。 在完成执行之后。 main的返回值通常用于指示执行状态。 最大值限制为512.如果您尝试返回大于512的值,则将在$?中设置512%val。