파일
파일은 컴퓨터 등의 기기에서 의미 있는 정보를 담는 논리적인 단위
🌀 일반파일
- 텍스트 파일, 이진 파일 등을 포함
- UNIX 계열의 운영체제에서 파일의 확장자는 특별한 의미가 없음
- 파일의 입출력은 커널 단계에서 버퍼링 작업을 함
(디스크의 여러 부분에 분리/저장되어 있는 데이터를 하나의 파일로 연결된 것처럼 함)
- 파일 내부에 저장되는 데이터의구조는 운영체제에 의해 제어되는 것이 아닌, 처리하는 프로그램에 따라 제어됨
🌀 디렉토리
- UNIX 계열의 운영체제에서 디렉토리는 파일의 한 종류임
- 디렉토리는 파일의 목록을 저장하는 파일
- 디렉토리는 파일을 포함하며, 하위 디렉토리 또한 포함할 수 있음
- 디렉토리는 일반 파일과는 다른 개념이지만, 읽을 때는 일반 파일과 동일하게 취급함
- 빈 디렉토리도 .과 .. 두 파일을 포함하고 있음
(. 은 디렉토리 자신, .. 는 상위 디렉토리)
파일 지시자 (File descriptor)
- UNIX 계열의 파일 접근 프리미티브는 파일 지시자라는 개념을 이용
- 파일 지시자는 음이 아닌 정수
- 프로세스가 실행 중에 파일에 접근하고자 하면, 커널은 해당 프로세스의 파일 디스크립터 숫자 중에 사용하지 않는 가장 작은 값을 할당
- 후에 프로세스가 열려 있는 파일에 시스템 호출을 이용해서 접근할 때, 이 값을 이용해 해당 파일을 지칭할 수 있음
- 파일 지시자가 단순히 숫자인 이유는, 프로세스가 유지하고 있는 FD 테이블의 인덱스이기 때문임
반응형
'Programming Language > C' 카테고리의 다른 글
[C] open(), close() (0) | 2020.12.05 |
---|---|
[C] Make (0) | 2020.12.04 |
[C] 오버플로우 언더플로우 (0) | 2020.12.03 |
[C] main함수 인자 (0) | 2020.11.28 |
[C] strcmp() (0) | 2020.11.26 |