File control block

De Viquipèdia
Dreceres ràpides: navegació, cerca

El File Control Block (bloc de control d'arxius) o FCB és una estructura de sistema d'arxius en el qual es manté l'estat d'un fitxer obert.[1] El FCB s'origina del CP/M, i també està present en la majoria de les variants del DOS. Un FCB complet té 36 bytes de longitud; a les primeres versions de CP/M, era de 33 bytes.[2][3]

Els significats dels diversos camps del FCB difereixen entre CP/M i MS-DOS, i també depenent de quina operació s'està realitzant. Els següents camps tenen un significat coherent:

Offset Mida
en bytes
Contingut
00 1 número de la unitat - 0 per defecte, 1 per a A:, 2 per a B :,...
01 8 Nom del fitxer i tipus de fitxer - junts formen un nom de fitxer 8.3
09 3
0C 20 Depèn de la implementació - s'inicialitza a zero abans d'obrir el FCB
20 1 Número de registre a la secció actual de l'arxiu - s'utilitza quan es realitza un accés seqüencial
21 3 Número de registre a utilitzar en l'acompliment d'accés aleatori

Ús[modifica | modifica el codi]

En CP/M i MS-DOS 1 (que no inclouen el suport a directoris), el FCB és l'únic mètode d'accés als arxius. Quan es van introduir els directoris en el MS-DOS 2, FCB va ser substituït per descriptors de fitxers.

FCB va ser suportat per totes les versions de MS-DOS i Windows fins a la introducció del sistema d'arxius FAT32.[4] Windows 95, Windows 98 i Windows Me no admeten l'ús de FCB en unitats FAT32, excepte per llegir l'etiqueta de volum. Això va fer que algunes antics aplicacions de DOS, incloent WordStar, fallen en aquestes versions de Windows. L'emulador DOSEMU implementa la interfície FCB correctament, i és una forma d'executar els programes més antics.

Referències[modifica | modifica el codi]

  1. «File control block» (en anglès). Microsoft. [Consulta: 18-02-2010].
  2. «El Disco» (PDF) (en castellà). [Consulta: 18-02-2010].
  3. «CP/M File Control Block» (en anglès). [Consulta: 18-02-2010].
  4. «How much compatible are legacy applications with FAT32?» (en anglès). [Consulta: 18-02-2010].

Enllaços externs[modifica | modifica el codi]