CodeNet / Языки программирования / C / C++ / Руководства и справочные материалы по C/C++ / Справочники по функциям / Справочник по функциям C/C++
randbwr
randbwr
Функция Запись на диск.
Синтаксис #include <dos.h>
int randbwr(struct fcb *fcbptr, int reccnt);
Файл, содержащий dos.h
прототип
Описание Функция randbwd записывает recent записей,
используя блок FCB, адресуемый указателем fcbptr.
Эта операция выполняется с помощью системного
вызова DOS 0x28.
Действительное число записанных записей можно
определить проанализировав поля random record
блока FCB. Данное поле после операции будет
заполнено информацией о числе действительно
записанных записей.
Возвращаемое В зависимости от результата работы функций randbwd
значение возвращает следующие значения:
0- все записи записаны;
1- На диске нет места для записи данных. (Не за-
писано ни одной записи.)
2- выводимые записи располагаются рядом с адресом
0xFFFF (выведено записей столько, сколько воз-
можно).
Переносимость Функция уникальна для DOS. Функция не совместима с
Windows.
Смотрите также randbrd.
Пример:
#include<process.h>
#include<string.h>
#include<stdio.h>
#include<dos.h>
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;
}
