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