리눅스 파일 디스크립터(Linux File descriptor)
간단 설명
리눅스/유닉스는 모든 장치를 파일로 관리하는데, 일반 파일과 내부/외부 모든 장치도 파일로 취급한다.
이 파일을 관리하는 것이 파일 디스크립터다.
이 파일을 관리하는 것이 파일 디스크립터다.
표준 번호 설명
번호 | 설명 | 이름 | 파일 스트림 |
---|---|---|---|
0 | 표준 입력(Standard input) | STDIN_FILENO | stdin |
1 | 표준 출력(Standard output) | STDOUT_FILENO | stdout |
2 | 표준 에러(Standard error) | STDERR_FILENO | stderr |
추가 설명
파일을 열게 되면 번호가 부여되고 디스크립터 테이블에 저장된다.
테이블에는 0부터 +1씩 순차적으로 자동 증가되는데 윈도우 핸들 개념과 비슷하지만 순차 등록되는 점이 다르다.
0, 1, 2 번호는 예약된 번호로 일반적으로 파일을 열면 3번으로 확인 된다.
번호는 0 이상은 될수 있지만 0 미만은 될 수 없다.
추가 자세한 설명은 아래 링크 참조.
테이블에는 0부터 +1씩 순차적으로 자동 증가되는데 윈도우 핸들 개념과 비슷하지만 순차 등록되는 점이 다르다.
0, 1, 2 번호는 예약된 번호로 일반적으로 파일을 열면 3번으로 확인 된다.
번호는 0 이상은 될수 있지만 0 미만은 될 수 없다.
추가 자세한 설명은 아래 링크 참조.
리다이렉션(redirection) 예제
명령어 | 설명 |
---|---|
명령어 1 > output.log | 표준 출력을 output.log 파일에 저장("명령어 > output.log" 동일한 결과가 나옴) |
명령어 2 > error.log | 표준 에러를 error.log 파일에 저장 |
명령어 0 < input.log | 표준 입력을 input.log 파일에서 가져오기("명령어 < input.log" 동일한 결과가 나옴) |
명령어 2>&1 | 표준 에러(2)를 표준 출력(1) 파일 디스크랩터가 참조하는 곳으로 보내기 |
명령어 1>&2 | 표준 출력(1)을 표준 에러(2) 파일 디스크랩터가 참조하는 곳으로 보내기 |
명령어 > /dev/null | 표준 출력을 표시하지 않고 표준 에러는 표시 |
명령어 > /dev/null 2>&1 | 표준 에러를 표준 출력으로 보내어 표준 출력과 표준 에러 모두 표시 안함 |