파일 제어 블록

위키백과, 우리 모두의 백과사전.

파일 제어 블록 또는 파일 컨트롤 블록(File Control Block, FCB)은 열린 파일의 상태를 관리하는 파일 시스템 구조이다. FCB는 운영 체제가 관리하지만 운영 체제 메모리가 아닌, 파일을 사용하는 프로그램의 메모리에 상주한다. 이를 통해 파일 당 FCB에 충분한 메모리 여유가 있는 한 프로세스가 한 번에 원하는 만큼의 파일을 열 수 있게 된다.

FCB는 CP/M에서 기원하며, 대부분의 유형의 도스에도 존재하지만 MS-DOS 버전 2.0 이상에서 하위 호환성을 목적으로만 존재한다. 전체 FCB의 길이는 36바이트이다. 초기 버전의 CP/M에서는 33바이트였다. 응용 프로그램 호환성을 무너뜨리지 않고 증가가 불가능한 이 고정 크기로 인해 파일 접근의 표준 방식으로서 철퇴를 맞았다.

FCB 내의 여러 필드의 의미는 CP/M과 도스간 차이가 있으며 수행되는 동작에 따라서도 달라진다. 다음의 필드는 일정한 의미가 있다:[1]

오프셋 바이트
크기
내용
0x00 1 드라이브 번호 — 0 (기본), 1 (A:), 2 (B:), ...
0x01 8 파일 이름 및 확장자 — 모두 8.3 파일 이름으로 구성됨.
0x09 3
0x0C 20 구현체에 따라 다름. FCB 개방 전에 초기화해야 함.
0x20 1 파일의 현재 섹션의 레코드 번호. 순차 접근 수행 시 사용함.
0x21 3 무작위 접근을 수행할 때 사용하는 레코드 번호.

오프셋 0x0c로 시작하는 20바이트 길이 필드는 파일에 관한 추가 정보를 포함하였다:[2]

오프셋 바이트
크기
내용
0x0E 2 파일의 레코드 길이 (바이트)
0x10 4 전체 파일 크기 (바이트)
0x14 2 마지막 파일 내용 수정 날짜
0x16 2 마지막 수정 시간

각주[편집]

  1. “FCB - Standard DOS File Control Block”. 
  2. Rodriguez-Rosello, Miguel (1992). 《8088-8086/8087 Programacion Ensamblador En Entorno MSDOS》 (스페인어). Ediciones Anaya Multimedia. ISBN 84-7614-128-9.