Files

為什麼有程序 ID (pid_t) 的類型,而不是文件描述符 (fd) 的類型?

  • March 30, 2012

我看到這pid_t是 typedef’d in unistd.h,並且文件描述符被定義為intin fcntl.h。但是由於它們以相似的方式使用,所以有一個typedeffor 文件描述符不是很有意義嗎?

在閱讀其他回復之前,我的猜測是pid_t出於便攜性原因而存在。在過去的美好時光中,一些 Unix 有shortPID,另一些有intPID,因此您可以為 PID 定義特定於系統的類型。我不記得使用int文件描述符所涉及的任何痛苦,即使在 64 位的早期也是如此。

我認為這是 C 標準(fcntl.h)和 POSIX 標準(unistd.h)之間的哲學差異。C 具有盡可能少的類型(包括 size_t 和 time_t),而 POSIX 具有盡可能多的類型以使程式碼更清晰(例如 pid_t、gid_t 和 size_t)。

引用自:https://unix.stackexchange.com/questions/35400