pid_t
で定義され、unistd.h
ファイル記述子int
がで定義されていることがわかりますfcntl.h
。しかし、同様の方法で使用されるので、typedef
forファイル記述子を使用するのは合理的ではないでしょうか?
答え1
他の応答を読む前に、これはpid_t
移植性の理由で存在すると思います。以前は、一部のUnixにはshort
PIDがあり、他のUnixにはint
PIDが含まれていたため、PIDにシステム固有のタイプを定義できました。int
64ビット初期にもファイルディスクリプタを使用するのに苦労した記憶はありません。
答え2
私はこれがC標準(fcntl.h)とPOSIX標準(unistd.h)の哲学的な違いだと思います。 Cにはできるだけ少ないタイプ(size_tとtime_tを含む)がありますが、POSIXにはコードをより明確にするためにできるだけ多くのタイプ(pid_t、gid_t、size_tなど)があります。
答え3
PIDは、特定のパラメータ(時間、サイズ、期間など)に関連する一意のプロセスを識別するためにより機能的な目的に使用でき、同じプロセスがx時間内に複数回発生する可能性があるため、特定のPIDをより簡単に呼び出すできます。ファイル記述子には型は必要ありません。ファイル自体は一意の名前で簡単に呼び出すことができるからです。