|
Если длина записи не укладывается точно в
512-байтовый размер сектора, то некоторые записи могут
размещаться в нескольких секторах, что несколько снижает
эффективность операций чтения и записи.
В нашем примере со 100-байтными записями, очередная, 25
запись, частично размещается в 5-ом, а частично - в 6-ом
секторе. |
avast edition |
|
|
Чтобы записать в файл эту запись, необходимо сначала
считать, а затем записать обратно на диск два сектора.
Если Вы будете выбирать длину записи так, чтобы она была
кратна 512, то скорость чтения и записи несколько повысится. |
symantec |
|
{img3} |
перевод с русского на английский |
|
ДОС, однако, позволяет работать с записями разной длины и,
если не считать некоторого снижения эффективности при
чтении/записи записей, располагающихся в нескольких секторах,
Вам не нужно заботиться о размере записи.
Как Вы, вероятно, догадались, существует множество
других форматов файлов, помимо текстовых файлов и файлов с
фиксированной длиной записи. |
win архиваторы |
|
|
антивирус panda, asplinux server, Навигационные системы, антивирус panda, текстовые редакторы, .
резервное копирование
|
Поскольку записи в таком файле имеют одинаковую длину,
можно использовать простейшие арифметические вычисления для
определения места, где заканчивается одна запись и начинается
другая. Служебные программы ДОС для чтения и записи
информации в файл, описанные в главе 4, используют такой
метод как при последоваательном, так и при произвольном
обращении к файлу. Когда Ваши программы обращаются к файлам,
ДОС выполняет все функции поиска записей, так что Вашим
программам не нужно заботится ни о каких подробностях,
связанных с поиском.
Рассмотрим пример. Если длина записей файла 100 и у ДОС
запрашивается чтение записи с номером 24, то ДОС вычисляет
смещение в байтах от начала файла умножением 24 х 100.
Разделив полученное значение 2400 на размер сектора, 512
байт, получим частноее 4 и остаток 352. Это значит, что
запись расположена в пятом секторе файла (пропускаются 4
сектора) со смещением 352 байта.
(Такой способ подсчета предполагает, что нумерация
записей начинается с нуля. Если номер первой записи единица,
то необходимо сооветствующим образом изменить формулу, хотя
сам метод остается неизменным).
В файлах с фиксированной длиной записи ДОС не приходится
заниматься выравниванием записей - они располагаются одна за
другой.
|
|
|