프로세스 ID 범위

프로세스 ID 범위

GNU/Linux 시스템에서는 양수 PID만 표시되지만 커널 패닉이 발생하면 PID=0인 프로세스에 대한 정보가 표시됩니다. 저게 뭐에요?

Minix 3에서는 부정적인 PID를 가진 프로세스를 보았습니다. Minix는 POSIX 호환 시스템이지만POSIX는 양수 PID만 허용합니다.. 그것은 무엇입니까?

프로세스 ID를 보유하려면 C에서 어떤 변수 유형을 사용해야 합니까?

답변1

1) 이것은 호출기 또는 스위치입니다.PID가 0인 프로세스는 무엇입니까?

2) Minix를 사용한 적이 없지만 설명서에는 Minix의 음수 pid가 커널 프로세스를 나타낸다고 나와 있습니다. 이것은 실제로 커널 구현의 일부이기 때문에 이것이 POSIX를 준수하는지 말할 수 없습니다 =)

3) 당신은 사용해야합니다pid_t

당신의 목표가 최대 이식성이라면 POSIX를 읽어야 합니다.

먼저, getpid() 함수는 를 반환합니다 pid_t. pid_ttypes.h에 정의되어 있습니다.

두번째:

   ... blksize_t, pid_t, and ssize_t shall be signed integer types. ...

   The implementation shall support one or more  programming  environments
   in  which the widths of ..., pid_t, ... are no greater than the width
   of type long. The names of these  programming  environments  can  be 
   obtained using the confstr() function or the getconf utility.

그래서 당신은 pid_t가치를 저장합니다 long. 또한 POSIX에서는 pid_t정수입니다.

관련 정보