我该怎么做才能从命令行获取c-program的整个返回值?

Luc*_*Man 6 c unix bash return

我有一个简单的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;

}
Run Code Online (Sandbox Code Playgroud)

结果,该程序打印:

return_result = 1140 = 0x474 
Run Code Online (Sandbox Code Playgroud)

我想在bash脚本中获得c-program的返回值.根据这个链接 无论如何从命令行获取c程序的返回值? 我应该从$得到这个变量?

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

./my_program
echo $?
Run Code Online (Sandbox Code Playgroud)

我明白了

116
Run Code Online (Sandbox Code Playgroud)

很明显,116 = 0x74(最低字节).但我想获得整个unsigned int值.怎么了?我该怎么做才能从命令行获取c-program的整个返回值?这不仅仅是"unsigned int"类型.如果我创建了一些复杂的类型,我应该怎么做,例如, - 结构.

我试过这个:

return ((unsigned int) return_result_section_size);
Run Code Online (Sandbox Code Playgroud)

它不起作用.

Tho*_*mas 6

Unix上的退出代码仅限于一个字节.如果要输出更多,可以将其写入stdout或文件.

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