[英]Boost Process exit code of terminated process
終止進程的返回碼應該是什么? 我運行"bash -c \"while true; do true; done\""
"bash -c \"while true; do true; done\""
"bash -c \"while true; do true; done\""
並調用terminate
。 在 boost 1.65 中是0
,現在在 boost 1.71 中是383
。
exit_code()
的文檔指出:
如果孩子沒有被等待或被終止,則返回值沒有任何意義。
因此,如果進程terminate
,似乎不應該調用exit_code()
。
在 Linux 上,“退出代碼”為383
( 0x17F
) 表示進程仍在運行。 因此,在獲取退出代碼之前wait
進程完成是值得的。
Boost.Process 在 1.71 版左右的某個地方發生了一些變化,這可以解釋行為上的差異(例如,將 SIGTERM 更改為 SIGKILL),但根據exit_code
文檔,將其與terminate
結合使用是不可行的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.