Функция Запись на диск.
Синтаксис #include
int randbwr(struct fcb *fcbptr, int reccnt);
Файл, содержащий dos.h
прототип
Описание Функция randbwd записывает recent записей, исполь-
зуя блок FCB, адресуемый указателем fcbptr. Эта
операция выполняется с помощью системного вызова
DOS 0x28.
Действительное число записанных записей можно оп-
ределить проанализировав поля random record блока
FCB. Данное поле после операции будет заполнено
информацией о числе действительно записанных за-
писей.
Возвращаемое В зависимости от результата работы функций randbwd
значение возвращает следующие значения:
0- все записи записаны;
1- На диске нет места для записи данных. (Не за-
писано ни одной записи.)
2- выводимые записи располагаются рядом с адресом
0xFFFF (выведено записей столько, сколько воз-
можно).
Переносимость Функция уникальна для DOS.
Смотрите также randbrd
Пример:
#include
#include
#include
#include
int main(void)
{
char far *save_dta;
char line[80];
char buffer[256] = "RANDBWR test!";
struct fcb blk;
int result;
/* ввести имя файла */
printf("Введите имя нового файла (без маршрута, например\
a:file.dat)\n");
gets(line);
/* записать имя файла в FCB */
if(!parsfnm(line,&blk,1))
printf("Устройство #%d файл: %s\n\n",blk.fcb_drive, blk.fcb_name);
/* создать файл, с использованием функций DOS, работающих с FCB */
if(bdosptr(0x16,&blk,0)==-1)
{
printf("Ошибка при создании файла\n");
exit(1);
}
/* сохранить старый DTA, создать новый */
save_dta = getdta();
setdta(buffer);
/* вывод в файл */
blk.fcb_recsize = 256;
blk.fcb_random = 0L;
result = randbwd(&blk,1);
/* проверить результат операции */
if(!result)
printf("Запись закончена успешно\n");
else
{
perror("Ошибка диска\n");
exit(1);
}
/* закрыть файл */
if(bdosptr(0x10,&blk,0)==-1)
{
printf("Ошибка при закрытии файла\n");
exit(1);
}
/* восстановить DTA */
setdta(save_dta);
return 0;
}