Russian Belarusian English German Japanese Ukrainian

Rashka.studio - игры и приложения для Android! Заходи, ждём тебя =)

Randbwr

CuBook05

Функция

Запись на диск.
 
Синтаксис

#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.
 
Пример

#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;
}
Если заметили ошибку, выделите фрагмент текста и нажмите Ctrl+Enter

Добавить комментарий