setdta

Функция            Устанавливает адрес DTA. (Область связи с диском).

Синтаксис          #include
                   void setdta(char far *dta);

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

Описание           setdta изменяет текущий адрес области связи с дис-
                   ком (DTA) по значению параметра dta.

Возвращаемое       Нет.
значение

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

Смотрите также      getdta

Пример:

#include
#include
#include
#include

int main(void)
{
   char far *save_dta;
   char line[80];
   char buffer[256] = "SETDTA 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);
   /* проверить результат операции */
   printf("result = %d",result);
   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;
}