Переменные errno, _doserrno, _sys_errlist, _sys_nerr (dos.h, errno.h)
Для печати сообщений об ошибке разрешает perror (для DOS,
Win16, Win32 и OS/2). Функция perror использует эти переменные
для вывода сообщений об ошибках.
errno | Указывает тип ошибки при математическом
или системном вызове. В других ситуациях не содержит кода ошибки. |
_doserrno | Содержит фактический код ошибки операционной системы, когда вызов операционной системы дает ошибку. |
_sys_errlist | Массив строк сообщений. В качестве индекса
массива для поиска строки по номеру ошибки можно использовать errno. |
_sys_nerr | Число строковых сообщений в _sys_nerr. |
Мнемонические обозначения в _sys_errlist показаны в следующей таблице:
E2BIG | Слишком длинный список аргументов. |
EACCES | В разрешении отказано. |
EBADF | Неверный номер файла. |
ECHILD | Нет дочернего процесса (Ч). |
ECONTR | Попытка удаления текущего каталога CurDir. |
EDEADLOCK | Нарушение блокировки (Ч). |
EDOM | Ошибка домена (*) или математического аргумента (Ч). |
EEXIST | Файл уже существует. |
EFAULT | Неизвестная ошибка. |
EINTR | Прерванный функциональный вызов (Ч). |
EINVACC | Недопустимый код доступа. |
EINVAL | Недопустимый аргумент. |
EINVDAT | Недопустимые данные. |
EINDRV | Недопустимая спецификация диска. |
EINVENV | Недопустимая операционная среда. |
EINVFMP | Недопустимый формат. |
EINVFNC | Недопустимый номер функции. |
EINVMEM | Недопустимый адрес блока памяти. |
EIO | Ошибка ввода-вывода (Ч). |
EMFILE | Открыто слишком много файлов. |
EMATOOLONG | Слишком длинное имя файла (Ч). |
ENFILE | Слишком много открытых файлов. |
ENMFILE | Файлов больше нет. |
ENODEV | Нет такого устройства. |
ENOENT | Нет такого файла или каталога. |
ENOEXEC | Ошибка формата выполняемого файла. |
ENOMEM | Не хватает памяти. |
ENOPATH | Маршрут не найден. |
ENOSPC | На устройстве не осталось места (Ч). |
ENOTSAM | Не то же устройство. |
ENXIO | Нет такого устройства или адреса (Ч). |
EPERM | Операция не разрешена (Ч). |
EPIPE | Нарушение конвейера (Ч). |
ERANGE | Результат вне диапазона (*) или слишком велик (Ч). |
EORFS | Файловая система доступна только по чтению (Ч). |
ESPIPE | Неразрешенная операция установки позиции (Ч). |
EXDEV | Перекрестная связь между устройствами. |
EZER0 | Ошибка 0. |
(Ч) - только для 32-разрядных приложений.
(*) - только для 16-разрядных приложений.
Ниже перечислены мнемоники фактических кодов ошибок DOS, в
которые может устанавливаться _doserrno (это значение может не
отображаться через errno):
E2BIG | Неверная операционная среда. |
EACCES | Доступ запрещен. |
EACCES | Неверный доступ. |
EACCES | Это текущий каталог. |
EBADF | Неверный описатель. |
EFAULT | Зарезервирован. |
EINVAL | Неверные данные. |
EINVAL | Неверная функция. |
EMFILE | Слишком много открытых файлов. |
ENOENT | Такого файла или каталога нет. |
ENOEXEC | Неверный формат. |
ENOMEM | Нет памяти. |
ENOMEM | Плохой блок. |
EXDEV | Неверный диск. |
EXDEV | Не то же устройство. |