对于以下程序,我的 echo$ 得到 0?尽管我期望1。
int main()
{
return 1;
}
答案1
您的程序将按照您的预期运行:
$ cat prog.c
int main()
{
return 1;
}
$ cc prog.c
$ ./a.out
$ echo $?
1
请注意,如果您在运行程序和输出之间执行任何操作$?
,则 的值$?
将被您使用的命令的退出状态覆盖。例如,
$ ./a.out
$ echo "I ran the program"
I ran the program
$ echo $?
0
这里0
是 的退出状态echo
。
答案2
如果我在我的系统上使用 gnu g++ 编译你的代码: echo $?给我 1. 你对 c、bash、python 等代码有同样的问题吗?另外:请注意 $?仅适用于最后一个命令的返回:$?对于回声$?是 0。