C

舊 Unix 中 WEXITSTATUS 的範圍限制為 0–127?

  • May 15, 2017

眾所周知,在許多(如果不是全部)Unix 上,程序的退出狀態在通過 、 和 時將被截斷為最低_exit8waitpidWEXITSTATUS。(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 位的值。

引用自:https://unix.stackexchange.com/questions/365242