CodeNet / Языки программирования / C / C++ / Руководства и справочные материалы по C/C++ / Справочники по функциям / Справочник по библиотечным функциям языка Си
DOS - package пакет функций dos
Описание
dos_abs_disk_read, dos_abs_disk_write Передают управление функциям DOS для выполнения чтения или записи диска соответственно. Номера уст- ройств (drive): 0 для устройства A, 1 - для B и т.д. до 25. Количество секторов для чтения и записи спе- цифицируется num_sec. Start_sec определяет первый сектор чтения или записи. Buffer является источни- ком или приемником данных. dos_creat Создает файл в DOS окружении. Байт атрибутов соот- ветствует описанию в DOS Technical Reference Manual. Описание атрибутов содержится в dos.h файле: FA_RDONLY - 0x01 - только чтение FA_HIDDEN - 0x02 - скрытый файл FA_SYSTEM - 0x04 - системный файл FA_LABEL - 0x08 - метка тома FA_DIREC - 0x10 - каталог FA_ARCH - 0x20 - архивный бит dos_get_verify Возвращает статус верификации DOS. Это отличное от нуля значение, если VERIFY (проверка записи) вклю- чена, и 0 в противном случае (Смотрите команду VERIFY в DOS Technical Reference Manual). dos_get_cntl_break Возвращает статус break управления DOS. Это от- личное от нуля значение, если реакция на прерывание break включена и 0 в противном случае (Смотрите BREAK команду в DOS Reference Manual). dos_getdiskfreespace Возвращает значение объема незанятого пространства на диске. Drive определяет устройство: 0 - умолча- ние (текущее устройство), 1 - A, 2 - B и т.д. dos_set_verify Устанавливает режим верификации записи (считывание после записи). Эта функция имеет тот же эффект, что и команды MS DOS VERIFY ON или VERIFY OFF. dos_set_cntl_break Включает или выключает режим реакции на break. Зна- чение аргумента ненулевое включает режим break, и 0 - выключает. Эта функция имеет тот же эффект, как и команда BREAK для командного процессора DOS.
Использование
#include <dos.h> int dos_abs_disk_read(int drive, int num_sec, int start_sec, char *buffer); int dos_abs_disk_write(int drive, int num_sec, int start_sec, char *buffer); int dos_creat(char *name, unsigned attribute); int dos_get_cntl_break(void); long dos_getdiskfreespace(int drive); int dos_get_verify(void); void dos_set_verify(int on_off); void dos_set_cntl_break(int on_off);
Возвращаемое значение
dos_creat Возвращает DOS дескриптор файла , если файл создан, в противном случае возвращает -1 и устанавливает errno. dos_get_cntl_break, dos_get_verify Возвращают отличное от нуля значение, если статус включен, и 0 в противном случае. dos_getdiskfreespace Возврашщает объем доступного дискового пространства в байтах в формате long int. dos_set_verify, dos_set_cntl_break Не возвращают значение. dos_abs_disk_read, dos_abs_disk_write Возвращают 0 в случае успеха. Ненулевое значение указывает на ошибку. Младший байт содержит код ошибки DOS. Старший байт содержит спецификацию ошибки BIOS(Смотрите DOS Technical Reference Manual)
Пример
#include <dos.h> #include <stdio.h> char buffer [512]; main() { char *offset; long result; int drive = 0; result = dos_getdiskfreespace(drive); printf("Default drive=%ld bytes free\n", result); dos_abs_disk_read(0,1,0,buffer); offset = &buffer[3]; printf("Boot record OEM=%s\n", offset); }