Russian Belarusian English German Japanese Ukrainian

Rashka.studio - игры и приложения для Android! Заходи, ждём тебя =)

Intdos

CuBook05

Функция

Интерфейс с функциями 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

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