Учись программированию на C++ Builder бесплатно!

Функция


Интерфейс с функциями DOS.

Синтаксис


#include <dos.h>
int intdos(union REGS *inregs, union REGS *outregs);

Прототип


dos.h

Описание


Функция генерирует прерывание DOS 0x21 для запуска заданной функции DOS. Значение параметра inregs->h.al определяет функцию DOS.

После возврата из прерывания, функция копируют текущие значения регистров в параметр outregs, а состояние флага системного переноса в поле x.cflag параметра outregs. Если флаг переноса установлен, это означает что произошла ошибка.

Примечание: параметры inregs и outregs могут указывать на одну и туже структуру.

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


После завершения вызова подпрограммы DOS, функция intdos возвращает значение регистра AX. Если флажок переноса установлен (outregs-->x.cflag !=0), что означает ошибку, переменная _doserrno получает в качестве значения код ошибки.

Переносимость


Функция уникальна для DOS.

Пример


#include <stdio.h>
#include <dos.h>
/* удаление файла. При успешном завершении возвращает 0, иначе ненулевое значение */
int delete_file(char near *filename)
{
union REGS regs;
int ret;
regs.h.ah = 0x41; /* удаление файла */
regs.x.dx = (unsigned) filename;
ret = intdos(&regs, &regs);
/* if carry flag is set, there was an error */
return(regs.x.cflag ? ret : 0);
}
int main(void)
{
int err;
err = delete_file("NOTEXIST.$$$");
printf("Able to delete NOTEXIST.$$$: %s\n", (!err) ? "YES" : "NO");
}

Если заметили ошибку, выделите фрагмент текста и нажмите Ctrl+Enter

  Комментарии

0 Evangeline 07.05.2017 17:53 #1
Thanks for finally writing about this

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


Поиск по сайту