저는 주니어 Java 개발자이며 UNIX 시스템을 처음 접합니다.
제가 질문하는 것이 맞는지 모르겠습니다.
따라서 IDE 환경에서 STDIN은 일반적으로 IDE의 콘솔을 나타냅니다.
UNIX 쉘에서 STDIN은 명령줄 프롬프트를 참조하는 것으로 보입니다.
그렇다면 쉘 세션에는 몇 개의 STDIN이 존재할 수 있습니까?
쉘 프롬프트 외에 다른 입력 스트림이 있습니까? (비표준 입출력과 유사)
답변1
다른 관점에서 생각해 보세요.
모든프로세스파일 설명자가 많이 있습니다. 관례적으로 처음 세 개는 stdin, stdout 및 stderr입니다.
프로세스를 실행할 때 이러한 설명자를 다른 위치로 "지정"할 수 있습니다.
IDE에서 셸을 실행하면 IDE는 이러한 셸을 IDE에서 제공하는 콘솔로 지정합니다.
xterm 내에서 쉘을 실행하면 xterm은 이러한 쉘을 xterm이 제공하는 창/키보드 상호 작용으로 가리킵니다.
직렬 포트(임베디드 시스템에서 일반적임)를 통해 셸을 실행하면 이러한 포트는 직렬 포트를 가리킵니다.
쉘에서 쉘을 실행하고 리디렉션하면 파일을 가리킬 수 있습니다.
마찬가지로, 셸에서 다른 프로세스(프로그램)를 실행할 때 해당 프로그램의 stdin 및 stdout을 예를 들어 >
및 를 통해 리디렉션할 수 있습니다 <
.
"STDIN은 명령줄 프롬프트를 의미합니다." 쉘 프로세스 자체에는 쉘이 호출될 때 설정된 모든 것을 참조하는 이러한 설명자가 있으며, 쉘은 이러한 설명자를 쉘에서 시작된 다른 프로그램에 상속할 수 있습니다(또는 해당 프로그램에 대해 다른 설명자를 사용할 수 있습니다).