Vejo que pid_t
está digitado em unistd.h
e os descritores de arquivo estão definidos como int
in fcntl.h
. Mas como eles são usados de maneira semelhante, não faria sentido ter um typedef
for descritores de arquivo?
Responder1
Antes de ler as outras respostas, meu palpite é que isso pid_t
existe por motivos de portabilidade. Nos bons e velhos tempos, alguns Unixes tinham short
PIDs, outros tinham int
PIDs, então você define um tipo específico de sistema para PID. Não me lembro de nenhuma dor envolvida no uso int
de um descritor de arquivo, mesmo nos primeiros dias de 64 bits.
Responder2
Acho que esta é uma diferença de filosofia entre o padrão C (fcntl.h) e o padrão POSIX (unistd.h). C tem poucos tipos necessários (incluindo size_t e time_t), enquanto POSIX tem tantos tipos quantos tornam o código mais claro (como pid_t, gid_t e size_t).
Responder3
O PID pode ser usado para fins mais funcionais na identificação do processo único em relação a determinados parâmetros (ou seja, tempo, tamanho, duração, etc.), facilitando a realização de chamadas para o PID específico porque o mesmo processo pode ocorrer várias vezes ao longo de x quantidade de tempo. Onde os descritores de arquivo não precisam de um tipo porque o arquivo em si pode ser facilmente chamado por seu nome exclusivo.