CodeNet / Языки программирования / C / C++ / Linux/Unix / Справочник С/C++ для UNIX - Список функций
CodeNet / Языки программирования / C / C++ / Руководства и справочные материалы по C/C++ / Справочники по функциям / Справочник С/C++ для UNIX - Список функций
CodeNet / Языки программирования / C / C++ / Руководства и справочные материалы по C/C++ / Справочники по функциям / Справочник С/C++ для UNIX - Список функций
intdos
INTDOS
#include <dos.h>
int intdos(inregs, outregs);
union REGS *inregs; значения регистров при
вызове
union REGS *outregs; значения регистров при
возврате
Описание.
Функция intdos осуществляет выполнение системного вызова MS
DOS, который определен значением регистров, объявленных в inregs,
и возвращает результат системного вызова в outregs. Аргументы
inregs и outregs являются объединениями типа REGS. Тип объедине-
ния объявлен в include-файле <dos.h>.
Для осуществления системного вызова intdos выполняет коман-
ду INT 21H. Перед выполнением команды функция копирует содержимое
inregs в соответствующие регистры. После возврата команды INT,
intdos копирует значение текущего регистра в outregs. Она также
копирует статус переносимого флага системы в поле cflag, разме-
щенное в outregs. Если это поле является ненулевым, флаг устанав-
ливается системным вызовом и указывает на условие ошибки.
Функция intdos используется для выполнения системных вызо-
вов DOS, которые берут аргументы в регистрах, отличных от DX
(DH/DL) и AL, или для системных вызовов, которые определяют ошиб-
ки посредством переносимого флага.
Возвращаемое значение.
Функция intdos возвращает значение регистра AX после завер-
шения системного вызова. Если поле cflag в outregs является нену-
левым, возникает ошибка и _doserrno устанавливает соответствую-
щий код ошибки.
См.также bdos, intdosx.
Пример:
#include <dos.h>
#include <stdio.h>
union REGS inregs, outregs;
.
.
.
/* следующие операторы выбирают текущую дату, используя
шестнадцатеричный вызов функции DOS 2a */
inregs.h.ah=0x2a;
intdos(&inregs,&outregs);
printf("date is %d/%d/%d\n", outregs.h.dh,
outregs.h.dl, outregs.x.cx);
