이전 Unix에서 WEXITSTATUS의 범위는 0~127로 제한되어 있나요?

이전 Unix에서 WEXITSTATUS의 범위는 0~127로 제한되어 있나요?

_exit많은(전부는 아니지만) Unix에서 , 및 를 전달할 때 프로세스의 종료 상태가 가장 낮은 8 waitpid비트로 잘리는 것으로 알려져 있습니다 WEXITSTATUS. (POSIX의 현재 반복에서는 상태가 다음과 같아야 함을 지정합니다.아니요and 를 통과할 _exit때 잘립니다 waitid. 하지만 이 질문과 관련이 없습니다. )

이런 상황이 있었나 아마깊은과거에는 종료 상태가 가장 낮은 값으로 잘렸습니다.일곱_exit// 당시에 비트가 전달되는 메커니즘은 무엇입니까 waitpid? WEXITSTATUS그렇다면 어떤 역사적 구현이 있었고 얼마나 오래 전에 이루어졌습니까?

답변1

7비트는 PDP-11에서는 흔하지 않습니다.유닉스 제2판 매뉴얼에 따르면(p.144) 다음과 같이 종료 상태를 제거합니다.

r0의 하위 바이트는 상위 프로세스의 상태로 사용될 수 있습니다.

R0일반적인 16비트 레지스터이므로 하위 바이트는 전체 8비트입니다. 위의 in 의 상위 바이트 wait R0는 프로세스 ID이고 MQin 의 상위 바이트는 in 의 하위 바이트이지만 R0이는 여전히 8비트 값입니다.

관련 정보