Функция Чтение абсолютных секторов на диске.
Синтаксис #include
int absread(int drive, int nsects,
int lsect, void * buffer);
Файл, содержащий dos.h
прототип
Описание absread считывает заданные сектора диска. Функция
игнорирует логическую структуру диска и не обращают
внимание на файлы, блоки FAT или директории.
аbsread читает заданные сектора диска посредст-
вом прерывания DOS 0x25.
drive = номер читаемого диска (0=А, 1=В, и т.д.)
nsects = количество читаемых секторов
lsect = начальный логический номер сектора
buffer = адрес памяти, куда считываются данные.
Количество считываемых секторов ограничено суммар-
ным размером сегмента памяти, расположенного выше
адреса buffer. Таким образом, 64К - максимальный
размер области памяти, который может быть обработан
за один вызов функции absread.
Возвращаемое При успешном завершении absread возвращает 0.
значение При возникновении ошибки, функция возвращает
значение -1 и присваивают переменной errno значе-
ние регистра AX, получаемое при системном вызове.
Переносимость absread уникальна для DOS.
Смотри также abswritebiosdisk
Пример:
#include
#include
#include
#include
#include
#define SEGSIZE 512
unsigned char buf[SEGSIZE];
int main(void)
{
int i,j,sector,drive;
char str[10];
printf("Введите метку диска:");
gets(str);
drive = toupper(str[0])-'A';
printf("Введите номер сектора, который нужно считать:");
gets(str);
sector = atoi(str);
if(absread(drive,1,sector,&buf)!=0)
{
perror("Ошибка диска")ж
exit(1);
}
printf("\nДисковод %c Сектор %d\n",'A'+drive,sector);
for(i=0; i