프로세스가 항상 여는 세 가지 파일은 무엇입니까?

프로세스가 항상 여는 세 가지 파일은 무엇입니까?

누군가 프로세스에는 항상 세 개의 다른 파일이 열려 있다고 언급했습니다. 무슨 뜻이에요? 어떤 파일인가요?

답변1

열려 있는 파일이 디스크에 있는 파일이 아닙니다. 스트림(의사 파일), stdin(0), stdout(1) 및 stderr(2)입니다. 다음은 관련 발췌문입니다POSIX 표준:

연관된 버퍼가 있는 파일을 스트림이라고 하며 정의된 유형 FILE에 대한 포인터로 선언됩니다. fopen() 함수는 스트림에 대한 일부 설명 데이터를 생성하고 모든 후속 트랜잭션에서 스트림을 지정하는 포인터를 반환합니다. 일반적으로 헤더에 선언되고 표준 열린 파일과 연결된 상수 포인터가 있는 세 개의 열린 스트림이 있습니다.

프로그램 시작 시 세 가지 스트림이 미리 정의되어야 하며 명시적으로 열 필요가 없습니다. 표준 입력(일반 입력 읽기용), 표준 출력(일반 출력 쓰기용) 및 표준 오류(진단 출력 쓰기용). 열릴 때 표준 오류 스트림은 완전히 버퍼링되지 않습니다. 표준 입력 및 표준 출력 스트림은 표준 입력 및 표준 출력 스트림이 대화형 장치를 참조하지 않는다고 판단할 수 있는 경우에만 완전히 버퍼링됩니다.

관련 정보