- •Int main(void)
- •Int main(void)
- •Int main(void)
- •Int main(void)
- •Int main(void)
- •Int main(void)
- •Int main(void)
- •Int main(void)
- •Int main(void)
- •Int main(void)
- •Int main(void)
- •Int main(void)
- •Int main(void)
- •Int main(void)
- •Int main(void)
- •Int main(void)
- •Int main(void)
- •Int main(void)
- •Int main(void)
- •Int main(void)
- •Int main(void)
- •Int main(void)
- •Int main(void)
- •Int main(void)
- •Int main(void)
- •Int main(void)
- •Int main(void)
- •Int main(void)
- •Int main(void)
- •Int main(void)
- •Int main(void)
- •Int main(void)
- •Int main(void)
- •Int main(void)
- •Int main(void)
- •Int main(void)
- •Int main(void)
- •Int main(void)
- •Int main(void)
- •Int main(void)
- •Int main(void)
- •Int main(void)
- •Int main(void)
- •Int main(void)
- •Int main(void)
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>
