簡體   English   中英

我如何使用wexitstatus獲得超過255的值

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

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