파일 제어 블록

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

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

FCB 내의 여러 필드의 의미는 CP/M과 도스간 차이가 있으며 수행되는 동작에 따라서도 달라진다. 다음의 필드는 일정한 의미가 있다:
 오프셋  바이트크기  내용 0x00 1  드라이브 번호 — 0 (기본), 1 (A:), 2 (B:), ... 0x01 8 파일 이름 및 확장자 — 모두 8.3 파일 이름으로 구성됨. 0x09 3 0x0C 20  구현체에 따라 다름. FCB 개방 전에 초기화해야 함. 0x20 1  파일의 현재 섹션의 레코드 번호. 순차 접근 수행 시 사용함. 0x21 3  무작위 접근을 수행할 때 사용하는 레코드 번호.

오프셋 0x0c로 시작하는 20바이트 길이 필드는 파일에 관한 추가 정보를 포함하였다:
 오프셋  바이트크기  내용 0x0E 2  파일의 레코드 길이 (바이트) 0x10 4  전체 파일 크기 (바이트) 0x14 2  마지막 파일 내용 수정 날짜 0x16 2  마지막 수정 시간

 각주 

분류:도스 기술