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);
}
