【发布时间】:2014-07-31 20:41:22
【问题描述】:
在 Linux C 中,如何读取最后一个程序的退出状态。
例如:
true; echo $?
将显示 0 表示成功。但我想用 C 程序替换它:
true; ./echo_exit_status
最后一个退出代码 $ 如何/在哪里?可用于 C 程序?
【问题讨论】:
-
我认为你不能(除非将其提供给 C 程序)。
-
该信息存储在 shell 进程中。 C 程序(即使它是 shell 的子进程)无法访问它。
-
我以为肯汤普森是这么说的
-
@Jack 你建议怎么做?通过入侵 shell 自己的内存?
-
@Jack,
PATH是一个环境变量(适用于所有程序),而不是一个shell变量(仅适用于shell) ;相比之下,$?不仅仅是一个常规的 shell 变量(您可以使用export将其暴露给环境,从而暴露给子进程),而是一个具有自身扩展行为的特殊参数,并且不能在全部。