intdos

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

 Смотрите также     bdos bdosptr geninterrupt int6, int6x
                    intdosx intr
 Пример:
       #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