我有一個關於Linux中程序退出狀態的問題。在我的程序中,我分叉了一個子進程並調用waitpid
來獲得它。當waitpid
返回時,我想檢查我的子進程的退出狀態。我轉向手動尋求幫助,發現waitpid
的第二個參數將保持退出狀態,我可以使用宏WEXITSTATE
來讀取它。然而,這個宏只是提取真正退出狀態的最低有效8位,而在函數exit(int ret_val)
的手冊中,它將以ret_val & 0x377
而不是最低有效8位退出。程序退出狀態
我的問題是,其他更多的位在哪裏?我們是否簡單地放棄它們?爲什麼Linux採用這種策略?這個實現不會給我們的程序帶來麻煩嗎?
感謝和最好的問候。
我錯誤0377爲十六進制。 :-) 謝謝。 – 2011-06-04 13:19:05