[英]how can i use wexitstatus to get the value more than 255
我只會說一點英語,所以希望您能理解我說的話。
我派生一個子進程,然后在子進程中添加。 例如:56 + 48 = 104
如果該值小於255,我可以使用“ wexitstatus(status)”來獲得答案。
但是,如果該值大於256,那將是錯誤的!
我能怎么做?
如果程序返回的退出代碼> 255,則該程序完全錯誤,需要修復。 這違反了Unix標准。 如果您沒有使用標准的Unix,則可能需要組織聯系人內部的專家幫助。
從聯機幫助頁的wait():
WEXITSTATUS(stat_val)
如果WIFEXITED(stat_val)的值不為零,則此宏求值為子進程傳遞給_exit()或exit()的狀態參數的低8位,或者該子進程從main返回的值()。
它限制為8位,即1個字節,這意味着WEXITSTATUS的int只能在0-255之間。 實際上, 任何 Unix程序最多只能返回255。
此外,許多OS /程序為系統指定的代碼保留> 127,因此您甚至不應使用任何高於此的值。
如果您需要的返回代碼多於126(因為0表示沒有錯誤),請考慮將其寫入STDOUT並對其進行掛鈎。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.