Описание функций Си

       

Randbrd



     randbrd

Функция Чтение с диска.

Синтаксис #include

int randbrd(struct fcb *fcbptr, int recent);

Файл, содержащий dos.h прототип

Описание Функция randbrd считывает количество записей recent, используя блок FCB, адресуемый указателем fcbptr. Записи считываются в память по текущему адресу DTA. Записи считываются с диска, причем информация берется из поля random record блока FCB. Эта операция выполняется с помощью системно- го вызова DOS 0x27.

Действительное число считанных записей можно оп- ределить проанализировав поля random record блока FCB. Данное поле после операции будет заполнено информацией о числе действительно считанных запи- сей.

Возвращаемое В зависимости от результата работы функций randbrd значение возвращает следующие значения:

0- все записи прочитаны;

1- достигнут конец файла (EOF) и последняя запись прочитана полностью;

2- считанные записи будут располагаться рядом с адресом 0xFFFF (прочитано записей столько, сколько возможно).

3- достигунт конец файла и последняя запись обра- ботана не полностью.

Переносимость Функция уникальна для DOS.

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

Пример:

#include

#include

#include

#include

int main(void) { char far *save_dta; char line[80],buffer[256]; struct fcb blk; int i,result; /* ввести имя файла */ printf("Введите устройство и имя файла (без маршрута, например\ a:file.dat)\n"); gets(line); /* записать имя файла в FCB */ if(!parsfnm(line,&blk,1)) { printf("Ошибка при вызове parsfnm\n"); exit(1); } printf("Устройство #%d файл: %s\n\n",blk.fcb_drive, blk.fcb_name); /* открыть файл, с использованием функций DOS, работающих с FCB */ bdosptr(0x0f,&blk,0); /* сохранить старый DTA, создать новый */ save_dta = getdta(); setdta(buffer); /* передать в FCB информацию об DTA */ blk.fcb_recsize = 128; blk.fcb_random = 0L; result = randbrd(&blk,1); /* проверить результат операции */ if(!result) printf("Чтение закончено успешно\n"); else { perror("Ошибка, во время чтения \n"); exit(1); } /* считать данные из новой DTA */ printf("Первые 128 символов:\n); for(i=0; i



Содержание раздела