관리 메뉴

FU11M00N

[ Linux ] 리눅스 파일 디스크립터란?(Linux File descriptor) 본문

Linux

[ Linux ] 리눅스 파일 디스크립터란?(Linux File descriptor)

호IT 2020. 4. 17. 18:38

파일 디스크립터란? 

  1. 시스템으로부터 할당 받은 파일을 대표하는 0이 아닌 정수의 값입니다.
    프로세스에서 실행되는 파일들의 목록을 관리해주는 테이블의 인덱스값입니다.
  2. 리눅스/유닉스는 모든 장치를 파일로 관리하는데, 일반 파일과 내부/외부 모든 장치도 파일로 취급합니다.
    이 파일을 관리하는 것이 파일 디스크립터 라고 부릅니다!

프로세스마다 0,1,2 번으로는 아래의 표로 사전 배정이되어있고 그 뜻은 아래와 같습니다. 
그러하여 하나의 파일을 생성하게되면 3번부터 시작하여 파일 디스크립터가 부여됩니다.

번호 설명 이름 파일스트림
0 표준 입력 STDIN_FILENO stdin
1 표준 출력 STDOUT_FILENO stdout
2 표준 에러 STDERR_FILENO stderr

 

부가설명

어떠한 파일을 열게되면 번호가 부여되고 파일 디스크립터 테이블에 따로 저장됩니다.

그 테이블 안에서는 0부터 1씩 순차적으로 증가하며,

파일 디스크립터 C int 타입으로 표현되고, 최대값은 1024 이지만 1024^2인 1048576 까지 설정이 가능합니다.

윈도우에서는 핸들이라고 생각하면되고 프로세스로 생각하자면 고유번호 PID 와 비슷하게 보이네요!

그럼 표준 스트림이란?

 

[특정한 프로그래밍 언어 인터페이스 + 유닉스 + 유닉스 계열 운영 체제] 에서 

Computer Program과 단말기 간의 미리 연결된 입출력 통로를 의미한다고 합니다.

한줄요약하자면.. 그냥 연결통로라고 생각하시면됩니다.
보통 입출력은 물리적으로 연결된 시스템 콘솔인 키보드와 모니터를 통해서 발생하는데,

이를 표준 스트림은 추상화 시킨것입니다! 
.

Comments