簡體   English   中英

等待函數和wexitstatus中的狀態值

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM