파일 설명자 및 /dev/fd

파일 설명자 및 /dev/fd

파일 설명자가 전체 프로세스 또는 전체 시스템에서 고유한지 여부입니다. 모든 파일이 동일한 stdin 및 stdout 설명자를 사용하는 것 같기 때문입니다. 이것들에 특별한 것이 있습니까? 표준 입력과 표준 출력은 어떻게 작동합니까? dev/fd은(는) 에 대한 링크라는 것을 알지만 proc/self/fd왜 둘 다 같은 번호를 가지고 있나요?

편집하다: 다른 프로세스를 살펴본 후에도 대부분의 파일 설명자는 거의 같은 번호를 갖습니다.

답변1

여기에는 혼란스러울 수 있는 몇 가지 사항이 있습니다.

파일 설명자는 (일반적인 의미에서) 파일에 첨부되며 특정 프로세스에만 적용됩니다. 파일 설명자 자체는 연관된 프로세스에서 숫자 ID로 참조되지만 파일 설명자에는 여러 ID가 있을 수 있습니다. 예: ID 1과 2는 표준 출력 및 표준 오류라고 하며 일반적으로 동일한 파일 설명자를 나타냅니다.

심볼릭 링크는 /proc/pid/fd/x힌트만 제공합니다.엑스프로세스 파일 설명자PID다음으로 연결. 일반 파일인 경우 심볼릭 링크가 해당 경로를 제공합니다. 그러나 파일 설명자가 inet 소켓이면 기호 링크가 끊어집니다. 일반 파일(또는 tty와 같은 경로가 있는 파일)의 경우 열 수 있지만 다음과 같은 결과를 얻게 됩니다.다른파일 설명자는 동일한 개체를 가리킵니다.

관련 정보