파일 설명자 또는 파일 핸들에서 리디렉션이 작동합니까?

파일 설명자 또는 파일 핸들에서 리디렉션이 작동합니까?

~에서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 또는 다른 이름과 같은 다른 이전 이름을 통해 액세스할 수도 있습니다.

위키피디아에는 하나가 있습니다.비교적 좋은 설명

관련 정보