FD가 2를 초과하고 초과합니다(stdin/stdout/sterr).

FD가 2를 초과하고 초과합니다(stdin/stdout/sterr).

이 글이 주제에서 벗어난 글은 아닌 것 같아요. Unix 컨텍스트에는 세 가지 전통적인 파일 설명자가 있습니다.

0 == STDIN
1 == STDOUT
2 == STDERR

그러나 새 기사, 블로그, 게시물, 답변 등에서 위의 FD보다 더 많은 내용을 읽었습니다. 예를 들면 다음과 같습니다.
동일한 "열린 파일 설명"을 공유하는 파일 설명자가 무엇인지 확인하십시오.
쉘 루프를 사용하여 텍스트를 처리하는 것이 왜 나쁜 습관으로 간주됩니까?
입력/출력 리디렉션
실행 사용
파일 설명자 및 쉘 스크립트
하지만자일스이전 링크에서 답변을 받았지만 인터넷 검색 후에 해당 FD에 대한 참조를 찾지 못했습니다. 또한 다음 해킹을 사용할 때 :

root@debian:/home/mohsen# ls /dev/fd/
0  1  2  3

4개 이상은 보이지 않지만 일부 예에서는 4 5 또는 7이 표시되며 세 가지 심각한 질문이 있습니다.

  1. FD 란 무엇인가요 /dev/fd/3 ?
  2. 나머지 사람들은 어디에 있나요?
  3. 나머지 부분에 대한 관련 참고 자료를 알고 있나요?

답변1

파일(또는 소켓과 같이 파일처럼 열 수 있는 모든 항목)을 열 때마다 int로 표시되는 파일 설명자를 얻게 됩니다. 처음 3개는 프로세스에 대해 자동으로 생성되는 stdin, stdout 및 stderr입니다. 열려 있는 다른 파일에는 추가 설명자가 표시됩니다. 매번 숫자가 늘어나는 것 같지만 이것이 믿을만한 현상인지는 모르겠습니다. 따라서 3과 4는 프로세스에 의해 열리는 처음 2개의 파일이 됩니다. 7은 다섯 번째 파일을 연 것입니다.

관련 정보