Функция Интерфейс с функциями DOS.
Синтаксис #include
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.
Смотрите также bdosbdosptrgeninterruptint6, int6xintdosxintr
Пример:
#include
#include
/* удаление файла. При успешном завершении возвращает 0, иначе
ненулевое значение */
int delete_file(char near *filename)
{
union REGS regs;
int ret;
regs.h.ah = 0x41; /* удаление файла */
regs.x.dx = (unsigned) filename;
ret = intdos(®s, ®s);
/* 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");
}
Вывод:
Able to delete NOTEXIST.$$$: NO