Unix Man (Справочное руководство)


FS(4)


FS(4)

НАЗВАНИЕ


fs - формат тома, содержащего файловую систему

СИНТАКСИС

#include <sys/types.h> #include <sys/param.h> #include <sys/filsys.h>

ОПИСАНИЕ


На всех томах файловой системы хранится в стандартном формате определенная жизненно важная информация. Каждый том (блочное устройство) разделен на некоторое количество секторов, имеющих длину 1024 байт. Размер всех файлов кратен, а внутренних буферов равен килобайту. Рекомендуется пользоваться константой BUFSIZ, равной размеру сектора. Она определена во включаемом файле <stdio.h>. Необходимо помнить и о том, что утилиты , в целях совместимости работают с 512 байтными блоками. Еще большей осторожности требует бесструктурный ввод/вывод. Драйверы диска не поддерживают 512-байтные блоки, так что при использовании команды надо указывать размер буфера кратным килобайту. Правда, при нумерации блоков драйверы ввода/вывода по-прежнему считают их 512-байтными.

Первые 512 байт сектора 0 могут содержать информацию об альтернативных дорожках. Вторая половина сектора 0 называется суперблоком.

Сектор 1 не используется. В секторах, начиная со второго, располагаются описатели файлов и собственно файлы. Системный том не содержит программы начальной загрузки.

Суперблок имеет следующий формат:

struct filsys { ushort s_isize; /* Размер списка описателей файлов в блоках */ daddr_t s_fsize; /* Размер всего тома в блоках */ short s_nfree; /* Количество адресов в массиве s_free */ daddr_t s_free[NICFREE]; /* Список свободных блоков */ short s_ninode; /* Кол-во описателей фай- лов в масс. s_inode */ ino_t s_inode[NICINOD]; /* Список свободных описа- телей файлов */ char s_flock; /* Блокир. при опер. со списком своб. блоков */ char s_ilock; /* Блокир. при опер. со списком опис. файлов */ char s_fmod; /* Флаг модификации супер- блока */ char s_ronly; /* Флаг монтирования только на чтение */ time_t s_time; /* Время последнего обнов- ления суперблока */ short s_dinfo[4]; /* Информация об устройстве */ daddr_t s_tfree; /* Кол-во свободных блоков */ ino_t s_tinode; /* Кол-во свободных описа- телей файлов */ char s_fname[6]; /* Имя файловой системы */ char s_fpack[6]; /* Имя тома */ long s_fill[14]; /* Заполнитель, чтобы sizeof(filsys)==512 */ long s_state; /* Состояние файловой сис- темы */ long s_magic; /* Маг. число новой (вер- сии V.3) файл. сист. */ long s_type; /* Тип новой файловой сис- темы */ };




Начало  Назад  Вперед



Книжный магазин