C
舊 Unix 中 WEXITSTATUS 的範圍限制為 0–127?
眾所周知,在許多(如果不是全部)Unix 上,程序的退出狀態在通過 、 和 時將被截斷為最低
_exit
8waitpid
位WEXITSTATUS
。(POSIX 的目前迭代指定狀態在通過and時不應被截斷,但這與這個問題無關。)_exit``waitid
有沒有這種情況,可能在過去很深,當通過任何機制時,退出狀態會被截斷到最低的七位
_exit
? /waitpid
/WEXITSTATUS
當時?如果是這樣,那是在哪個歷史實現上,多久以前?
7 位將是與 PDP-11 不同尋常的背離,根據 unix 2nd edition manual (p.144),PDP-11 將退出狀態降至
r0 的低字節可用作父程序的狀態。
R0
是一個通用的 16 位寄存器,它的低字節將是一個完整的 8 位。並且 inwait
R0
有程序 ID,而 的高字節MQ
得到 的低字節R0
,但這仍然是一個 8 位的值。