randbwr

Функция            Запись на диск.

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