Страница 1 из 2 Хотя в этой главе содержится детальная информация, знание которой позволяет непосредственно работать с логической структурой диска, включая загрузочный сектор, таблицу FAT и каталог, однако нежелательно впрямую обращаться к этим элементам, если, конечно, на то нет веской причины. В сущности, за исключением лишь тех случаев, когда такое обращение неизбежно, как, например, в программе, обеспечивающей защиту от копирования, неразумно включать любые знания о формате диска в логику работы ваших программ. В целом наилучший подход к решению этого вопроса состоит в том, что сначала следует рассмотреть стандартную иерархию операций и использовать службы наивысшего уровня из этой иерархии, которые могут удовлетворить ваши потребности.
Первый вариант: службы языка высокого уровня (средства, обеспечиваемые вашим языком программирования, как, например, предложения OPEN и CLOSE в языке Бейсик).
Второй вариант: службы системы DOS (описываемые в гл. 16 и 17).
Третий вариант: службы ROM BIOS для диска (описываемые в гл.10).
Четвертый вариант: непосредственное управление (например, программирование контроллера дисковода при помощи команд, выдаваемых через порты ввода/вывода).
Большинство операций с диском для семейства PC достаточно легко можно выполнить с помощью служб, обеспечиваемых выбранным вами языком программирования. Однако имеется два очевидных обстоятельства, при которых могут потребоваться более сложные методы. Одно из них, о котором мы уже упомянули, имеет место, когда программирование включает управление диском на том же уровне, на котором это делает система DOS. К этому уровню пришлось бы обратиться, если бы вы писали программу, аналогичную программе CHKDSK системы DOS или программам Norton Utilities. Другое обстоятельство имеет отношение к защите от копирования. Так или иначе все схемы защиты от копирования для дискеты включают некоторые типы нестандартных операций ввода-вывода. Данный тип управления обычно ведет к использованию служб ROM BIOS, однако может также
привести к применению крайних мер, заключающихся в непосредственном программировании
контроллера дисковода.
|