본문 바로가기

Linux/Linux

유닉스 파일 디스크립터

유닉스의 파일디스크립터


유닉스 프로그램이 파일에 뭔가 작업을 하기 위해서는 일단 파일을 열어야 한다. 

이 때, 유닉스는 열려있는 파일을 구분하기 위해 파일에 간단한 숫자를 붙인다. 

이 숫자를 파일 디스크립터라고 하고, 0부터 9까지 존재한다. 


유닉스는 기본적으로 다음과 같은 3개의 파일을 열어둔다. 

-std input

-std outpu

-std error


열려있는 표준 파일은 구분을 위해 숫자를 할당 받으며, 각각 아래와 같다. 


STDIN = 0, STDOUT = 1 STDERR=2


0,1,2 외의 파일 디스크립터는 추가로 열리는 다른 파일을 구분하기 위해 사용된다. 


그렇다면 다음과 같다 


1>file 표준 출력을 file로 보낸다

2>file 표준 에러를 file로 보낸다. 

0<file file로 부터 표준 입력을 받는다. 

i>&j i번 파일 디스크립터를 j번 파일디스크립터로 리다이렉트 한다. 

       즉, i가 가리키는 파일의 모든 출력은 j가 가리키는 파일로 보낸다. 


빌드 스크립트를 보다가 나온 구분이 있었다. 


getent group "$TEST_GROUP" > /dev/null 2>&1 


Above statement tell us that first 'getent' is executed and the result is redirected to /dev/null. 

If there is error, the error is redirected to standard output. 

e.g It is not displayed error about getent command. 




'Linux > Linux' 카테고리의 다른 글

Make 파일에 대한 정리 (두서 없다 다시 정리해야 함)  (0) 2016.05.12