以前のUnixでは、WEXITSTATUSの範囲は0〜127に制限されていますか?

以前のUnixでは、WEXITSTATUSの範囲は0〜127に制限されていますか?

_exit多くの(すべてではありませんが)Unixでは、およびを渡すとプロセスの終了状態が最も低い8waitpidビットに切り捨てられることが知られていますWEXITSTATUS。 (POSIXの現在の反復では、状態が次のようになることを指定します。いいえandを通過する_exitと切り捨てられますwaitid。しかし、この質問とは関係ありません。 )

このような状況がありましたか深い過去には、終了状態が最も低い値に切り捨てられました。_exit//その時点でビットが渡されるメカニズムは何ですかwaitpidWEXITSTATUSでは、どのような歴史的な実装があり、どのくらい前に行われたのでしょうか。

ベストアンサー1

7ビットはPDP-11では一般的ではありません。Unixの第2版マニュアルによると(p.144)次のように終了状態を削除します。

r0 の下位バイトは、親プロセスの状態として使用できます。

R0一般的な16ビットレジスタなので、下位バイトは合計8ビットです。上記のinの上位バイトwait R0はプロセスIDであり、MQinの上位バイトはinの下位バイトですが、R0これはまだ8ビット値です。

おすすめ記事