# 파일 디스크립터 (fd, file descriptor)
+ Unix OS 계열의 시스템에서 프로세스가 파일을 다룰 때 사용하는 개념.
+ 특정 파일에 접근할 때 사용하는 추상적인 값
+ 파일 디스크립터는 일반적으로 0이 아닌 정수값을 가진다.
+ 유닉스 시스템에서는 정규파일, 디렉토리, 소켓, 파이프, 블록 디바이스, 캐릭터 디바이스 등 모든 객체를 파일로 관리한다. 프로세스가 실행 중에 파일을 open하면 커널은 해당 프로세스의 파일 디스크립터 숫자 중 사용하지 않는 가장 작은 값을 할당. 그 다음 프로세스가 열려있는 파일에 시스템 콜을 이용해서 접근할 때, 파일 디스크립터(FD)값을 이용해서 파일을 지칭할 수 있다.
+ 프로세스에서 열린 파일의 목록을 관리하는 (FD)테이블의 인덱스
- FD테이블의 각 항목은 FD플래그와 파일 테이블을 가리키는 포인터를 가지고 있음.
- fd는 해당 프로세스의 open file 을 관리하는 구조체 배열의 index
+ 프로그램이 프로세스로 메모리에서 실행될 때, 기본적으로 할당되는 파일 디스크립터는 표준 입력(Standard Input) - 0, 표준 출력(Standard Output) - 1, 표준 에러(Standard Error) - 2 이다.
+ 0이 아닌 정수로 표현되는 파일 디스크립터는 0 ~ OPEN_MAX까지의 값을 가질 수 있고 OPEN_MAX값은 플랫폼마다 다르다.
# 커널
운영체제의 다른 부분 및 응용 프로그램 수행에 필요한 여러가지 서비스를 제공
# 시스템 콜 (System Calls, 시스템 호출)
+ 사용자 프로그램이 운영체제의 서비스를 받기 위해 커널 함수를 호출하는 것
# OPEN_MAX
+ 단일 프로그램에 허용되는 최대 열린 파일의 갯수를 정의하는 상수
# 소켓
#
'42seoul > circle-1' 카테고리의 다른 글
[ ft_printf ] 1. printf (0) | 2021.12.29 |
---|---|
[ printf ] 0. 문제 이해하기 (0) | 2021.12.23 |
[ GNL ] 04. 선행지식_read() 함수 (0) | 2021.11.03 |
[ GNL ] 03. 선행지식_정적변수(Static) (0) | 2021.11.03 |
[ GNL ] 01. 과제 이해하기 (0) | 2021.10.31 |
댓글