Boost Process 终止进程的退出代码

Boost Process exit code of terminated process

终止进程的 return 代码应该是什么?我 运行 "bash -c \"while true; do true; done\"" 并调用 terminate。在 boost 1.65 中它是 0,现在在 boost 1.71 中它是 383.

exit_code() 的文档指出:

The return value is without any meaning if the child wasn't waited for or if it was terminated.

所以如果进程是 terminated,那么似乎 exit_code() 不应该被调用。

在 Linux,383 (0x17F) 的“退出代码”表示进程仍在 运行。因此,值得尝试 wait 让进程在获取其退出代码之前完成。

Boost.Process 版本 1.71 前后的某处有一些变化,可以解释行为上的差异(例如,将 SIGTERM 更改为 SIGKILL),但根据 exit_code 文档,它永远不会成功结合 terminate.

调用它