[英]status value in wait function and wexitstatus
我在unix的系統功能實現中閱讀了以下代碼 (問題8.22):
int status;
if (wait(&status) > 0) {
if (WIFEXITED(status)) {
return WEXITSTATUS(status);
} else {
return status;
}
}
我不明白這里的if條件是什么:WEXITSTATUS返回的狀態與等待中的狀態不一樣嗎? 如果不是,那么兩者之間有什么區別?
status
值是一種復合值,包括過程“退出狀態”和其他位。 從關於WEXITSTATUS
的Linux手冊頁中:
如果WIFEXITED(stat_val)的值不為零,則此宏求值為子進程傳遞給_exit()或exit()的狀態參數的低8位,或者該子進程從main返回的值()。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.