Faixa de IDs do processo

2

No sistema GNU / Linux eu vi apenas PIDs positivos, mas quando ocorreu o kernel panic eu vi informações sobre o processo com PID = 0. O que é isso?

No Minix 3, vi processos com PIDs negativos. Minix é um sistema compatível com POSIX, mas POSIX permite somente PIDs positivos . O que é isso?

Qual tipo de variável eu devo usar em C para salvar o ID do processo?

    
por hon 19.08.2014 / 18:24

1 resposta

3

1) Este é pager ou swapper: Qual processo tem 0 PID?

2) Nunca usei o Minix mas o manual diz que o pid negativo no Minix significa processo kernel. Como isso é realmente parte da implementação do kernel, eu não posso dizer se isso está de acordo ou não com POSIX =)

3) Você deve usar pid_t

Se o seu objetivo é a portabilidade máxima, você deve ler o POSIX e ele diz:

Primeiro, a função getpid () retorna pid_t . pid_t é definido em types.h.

Segundo:

   ... 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.

Você pode salvar o valor pid_t em long . Observe também que, por POSIX, pid_t é um inteiro.

    
por 19.08.2014 / 19:02

Tags