众所周知,在许多(如果不是全部)Unix 上,进程的退出状态在通过 、 和 时将被截断为最低_exit
8waitpid
位WEXITSTATUS
。 (POSIX 的当前迭代指定状态应该不是通过_exit
and时被截断waitid
,但这与这个问题无关。)
是否曾有过这样的情况,可能深的过去,退出状态将被截断至最低七通过什么机制传递的位在当时相当于_exit
// waitpid
?WEXITSTATUS
如果是这样,那是在哪一个历史实现上的,多久以前的实现?
答案1
7 位与 PDP-11 不同寻常,根据unix第二版手册(p.144) 将退出状态删除为
r0 的低字节可用作父进程的状态。
R0
是一个通用 16 位寄存器,其低字节将是完整的 8 位。上面的 inwait
R0
是进程 ID,而 的高字节MQ
得到 的低字节R0
,但这仍然是一个 8 位值。