Veo que pid_t
está escrito en unistd.h
, y los descriptores de archivos están definidos int
en fcntl.h
. Pero dado que se usan de manera similar, ¿no tendría sentido tener typedef
descriptores de archivos?
Respuesta1
Antes de leer las otras respuestas, supuse que pid_t
existe por razones de portabilidad. En los buenos tiempos, algunos Unix tenían short
PID, otros tenían int
PID, por lo que se define un tipo de PID específico del sistema. No recuerdo ningún dolor que implicara el uso int
de un descriptor de archivo, incluso en los primeros días de los 64 bits.
Respuesta2
Creo que esta es una diferencia de filosofía entre el estándar C (fcntl.h) y el estándar POSIX (unistd.h). C tiene tan pocos tipos como sean necesarios (incluidos size_t y time_t), mientras que POSIX tiene tantos tipos como para aclarar el código (como pid_t, gid_t y size_t).
Respuesta3
El PID se puede utilizar con fines más funcionales para identificar el proceso único en relación con ciertos parámetros (es decir, tiempo, tamaño, duración, etc.), lo que facilita realizar llamadas al PID específico porque el mismo proceso puede ocurrir varias veces en x cantidad. de tiempo. Donde los descriptores de archivos no necesitan un tipo porque el archivo en sí mismo puede llamarse fácilmente por su nombre único.