IT/Linux

파일 디스크립터(File Descriptor) 란 무엇인가?

twofootdog 2020. 3. 25. 15:33

1. 개념

파일 디스크립터(File Descriptor)란 리눅스 혹은 유닉스 계열의 시스템에서 프로세스(process)가 파일(file)을 다룰 때 사용하는 개념으로, 프로세스에서 특정 파일에 접근할 때 사용하는 추상적인 값이다. 파일 디스크럽터는 일반적으로 0이 아닌 정수값을 갖는다. 

흔히 유닉스 시스템에서 모든 것을 파일이라고 한다. 일반적인 정규파일부터 디렉토리, 소켓, 파이프, 블록 디바이스, 케릭터 디바이스 등 모든 객체들을 파일로 관리한다. 유닉스 시스템에서 프로세스가 이 파일들을 접근할 때 파일 디스크립터라는 개념일 이용한다. 프로세스가 실행 중에 파일을 Open하면 커널은 해당 프로세스의 파일 디스크립터 숫자 중 사용하지 않는 가장 작은 값을 할당해준다. 그 다음 프로세스가 열려있는 파일에 시스템 콜을 이용해서 접근할 때, 파일 디스크립터(FD)값을 이용해서 파일을 지칭할 수 있다.

프로그램이 프로세스로 메모리에서 실행될 때, 기본적으로 할당되는 파일디스크립터는 표준입력(Standard Input), 표준 출력(Standard Output), 표준에러(Standard Error)이며 이들에게 각각 0, 1, 2라는 정수가 할당된다.

 

 

 


2. 파일 디스크립터(File Descriptor) 확인하는 방법

2-1. 실행중인 프로세스 PID 확인

 

 

2-2. PID로 해당 프로세스의 파일 디스크립터(File Descriptor) 정보 확인

# sudo ls -trn /proc/[PID]/fd

 



참고

https://dev-ahn.tistory.com/96

 

리눅스 - 파일 디스크립터

File Descriptor (파일 디스크립터) [출처: http://dev.plusblog.co.kr/22] 1. 파일 디스크립터 - 시스템으로부터 할당 받은 파일을 대표하는 0이 아닌 정수 값 - 프로세스에서 열린 파일의 목록을 관리하는 테이..

dev-ahn.tistory.com

https://mintnlatte.tistory.com/377

 

프로세스에서 사용중인 File descriptor 확인하기

■ 현재 프로세스에서 사용하고 있는 file descriptor 리스트 및 개수 (1) 실행중인 프로세스의 PID를 확인. ○ 명령어 $ ps -ef | grep [프로세스명] - PID : 3376 (2) proc 에서 해당 프로세스의 fd 정보를 확..

mintnlatte.tistory.com