Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Вариант_№20.doc
Скачиваний:
3
Добавлен:
01.07.2025
Размер:
348 Кб
Скачать
☆

Int main(void)

{

int i;

printf("10 случайных чисел от 0 до 99 \n\n");

for (i=0; i<10; i++)

printf("%d\n", rand()%100);

return 0;

}

randbrd

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

Синтаксис #include <dos.h>

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

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

= 97 =

прототип

Описание Функция randbrd считывает количество записей

recent, используя блок FCB, адресуемый указателем

fcbptr. Записи считываются в память по текущему

адресу DTA. Записи считываются с диска, причем

информация берется из поля random record блока

FCB. Эта операция выполняется с помощью системно-

го вызова DOS 0x27.

Действительное число считанных записей можно оп-

ределить проанализировав поля random record блока

FCB. Данное поле после операции будет заполнено

информацией о числе действительно считанных запи-

сей.

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

значение возвращает следующие значения:

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

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

прочитана полностью;

2- считанные записи будут располагаться рядом с

адресом 0xFFFF (прочитано записей столько,

сколько возможно).

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

ботана не полностью.

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

Смотрите также getdta, randbwd, setdta.

Пример:

#include<process.h>

#include<string.h>

#include<stdio.h>

#include<dos.h>

Int main(void)

{

char far *save_dta;

char line[80],buffer[256];

struct fcb blk;

int i,result;

/* ввести имя файла */

printf("Введите устройство и имя файла (без маршрута, например\

= 98 =

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<128; i++)

putchar(buffer[i]);

/* восстановить DTA */

setdta(save_dta);

return 0;

}

randbwr

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

Синтаксис #include <dos.h>

int randbwr(struct fcb *fcbptr, int reccnt);

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

прототип

Описание Функция randbwd записывает recent записей, исполь-

зуя блок FCB, адресуемый указателем fcbptr. Эта

операция выполняется с помощью системного вызова

DOS 0x28.

= 99 =

Действительное число записанных записей можно оп-

ределить проанализировав поля random record блока

FCB. Данное поле после операции будет заполнено

информацией о числе действительно записанных за-

писей.

Возвращаемое В зависимости от результата работы функций randbwd

значение возвращает следующие значения:

0- все записи записаны;

1- На диске нет места для записи данных. (Не за-

писано ни одной записи.)

2- выводимые записи располагаются рядом с адресом

0xFFFF (выведено записей столько, сколько воз-

можно).

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

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

Пример:

#include<process.h>

#include<string.h>

#include<stdio.h>

#include<dos.h>

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]