프로세스 ID(pid_t)에 대한 유형은 있지만 파일 설명자(fd)에 대한 유형은 없는 이유는 무엇입니까?

프로세스 ID(pid_t)에 대한 유형은 있지만 파일 설명자(fd)에 대한 유형은 없는 이유는 무엇입니까?

pid_ttypedef'가 있고 unistd.h파일 설명자는 에 있도록 정의되어 int있습니다 fcntl.h. 하지만 비슷한 방식으로 사용되기 때문에 typedeffor 파일 설명자를 갖는 것이 합리적이지 않을까요 ?

답변1

pid_t다른 답변을 읽기 전에는 이식성의 이유로 존재한다고 생각했습니다 . Good Ol' Days에는 일부 Unix에는 shortPID가 있고 다른 Unix에는 intPID가 있으므로 PID에 대한 시스템별 유형을 정의합니다. int64비트의 초창기에도 파일 설명자를 사용하는 데 관련된 어떤 고통도 기억나지 않습니다 .

답변2

이는 C 표준(fcntl.h)과 POSIX 표준(unistd.h)의 철학적 차이라고 생각합니다. C에는 필요한 만큼 적은 유형(size_t 및 time_t 포함)이 있는 반면 POSIX에는 코드를 더 명확하게 만드는 만큼 많은 유형(예: pid_t, gid_t 및 size_t)이 있습니다.

답변3

PID는 특정 매개변수(예: 시간, 크기, 기간 등)와 관련하여 고유한 프로세스를 식별하는 데 더 많은 기능적 목적으로 사용될 수 있으며, 동일한 프로세스가 x 양에 걸쳐 여러 번 발생할 수 있으므로 특정 PID를 더 쉽게 호출할 수 있습니다. 시간의. 파일 설명자에는 파일 자체가 고유한 이름으로 쉽게 호출될 수 있으므로 유형이 필요하지 않습니다.

관련 정보