absread

 Функция            Чтение абсолютных секторов на диске.

 Синтаксис          #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.

 Смотри также       abswrite biosdisk

 Пример:

 #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