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);