~에서https://www.gnu.org/s/bash/manual/html_node/Redirections.html
셸에서 해석되는 특수 기호를 사용하여 명령을 실행하기 전에 명령의 입력과 출력을 리디렉션할 수 있습니다. 리디렉션 허용 명령'파일 핸들다양한 파일을 복사하고, 열고, 닫고, 참조할 수 있으며, 명령으로 읽고 쓰는 파일을 변경할 수 있습니다. 리디렉션을 사용하여 수정할 수도 있습니다.파일 핸들현재 쉘 실행 환경에서.
그러나 링크의 다음 텍스트는 리디렉션이 파일 설명자(정수)에서 작동함을 보여줍니다.
파일 핸들과 파일 설명자는 다릅니다. ~에서https://en.wikipedia.org/wiki/File_descriptor#OverviewFILE
에서 파일 핸들은 C 표준 라이브러리의 데이터 구조입니다. 파일 설명자는 Unix 및 Unix 계열 운영 체제의 개체입니다.
bash 매뉴얼의 인용문에서 "파일 핸들"은 무엇을 의미합니까?
답변1
Bash 문서에서는 "파일 핸들"이라는 용어를 "파일 설명자"의 동의어로 사용합니다.
프로그램은 I/O를 위해 C 표준 라이브러리를 사용할 필요가 없습니다. 분명히 이렇게 하면 fdopen()
파일 설명자 중 하나에서 구조를 가져오는(가리키는) 데 사용할 수 있습니다.FILE
답변2
(Linux 시스템의 경우) 다음과 같이 작성하는 경우:
ls -l /proc/$$/fd
열려 있는 fd(파일 설명자) 목록에 다음을 기록합니다.
lrwx------ 1 user user 64 dic 8 00:06 0 -> /dev/pts/12
lrwx------ 1 user user 64 dic 8 00:06 1 -> /dev/pts/12
lrwx------ 1 user user 64 dic 8 00:06 2 -> /dev/pts/12
lrwx------ 1 user user 64 dic 8 00:06 255 -> /dev/pts/12
사람들은"파일 핸들"이라고도 함.
보시다시피 숫자는 0,1,2입니다. stdin(0), stdout(1), stderr(2)와 같습니다.
따라서 리디렉션은 이러한 번호(예: >&2)에 대해 작동하며 일부 새 번호(예: >&18)를 생성할 수 있습니다.
이러한 파일 설명자는 /dev/stdout, /dev/fd1 또는 다른 이름과 같은 다른 이전 이름을 통해 액세스할 수도 있습니다.
위키피디아에는 하나가 있습니다.비교적 좋은 설명