Системная ошибка дос

Приложение Д Коды ошибок DOS

2 – файл не найден

3 – путь доступа не найден

5 – доступ отвергнут

6 – недопустимая обработка

8 – недостаточно памяти

10 – недопустимая программная среда

11 – неверный формат

18 – файлы отсутствуют

Данный текст является ознакомительным фрагментом.

Читайте также

Коды исключений

Коды исключений
Для точной идентификации типа возникшего исключения блок исключения или выражение фильтра могут использовать следующую функцию:
DWORD GetExceptionCode(VOID)
Код исключения должен быть получен сразу же после возникновения исключения. Поэтому функция фильтра не

9.2.4. Общие коды возврата ошибок

9.2.4. Общие коды возврата ошибок
Существует множество общих кодов ошибок, для которых вы вполне могли наблюдать сообщения. Некоторые из этих сообщений могут сбивать с толку. Без знаний о том, что можно делать в Linux-системе, трудно понять ошибки, которые могут возникать в

Приложение Г Различные исходные коды

Приложение Г
Различные исходные коды

Г.1. Заголовочный файл unp.h
Почти каждая программа в этой книге начинается с подключения заголовочного файла unp.h, показанного в листинге Г.1[1]. Этот файл подключает все стандартные системные заголовочные файлы, необходимые для работы

Коды ошибок удаленного доступа Windows

Коды ошибок удаленного доступа Windows
Если модем не соединяется с Интернетом, то на экране появляется не только сообщение об ошибке, но и ее номер, по которому можно гораздо точнее диагностировать проблему, возникшую при интернет-подключении.Наиболее типичные ошибки

14.6.8 Коды ответов

14.6.8 Коды ответов
Каждой команде в диалоге соответствует ответ, состоящий из кода ответа и сообщения. Например:ftp> get subnets—> PORT 128,36,0,22,10,54200 PORT command successful.—> RETR subnets150 Opening ASCII mode data connection for subnets (3113 bytes).226 Transfer complete.Коды ответов состоят из трех цифр, каждая из которых имеет

16.10 Коды ответов

16.10 Коды ответов
Коды ответов SMTP имеют структуру, подобную кодам ответов FTP. Код состоит из трех цифр. Первая цифра указывает статус команды:

1yz
Положительный предварительный (Positive Preliminary) ответ (в настоящее время в SMTP не используется)

2yz
Положительный дополненный (Positive

2.2.3. Коды ошибок системных вызовов

2.2.3. Коды ошибок системных вызовов
Большинство системных вызовов возвращает 0, если операция выполнена успешно, и ненулевое значение — в случае сбоя. (В некоторых случаях используются другие соглашения. Например, функция malloc() при возникновении ошибки возвращает нулевой

Приложение C. Коды завершения, имеющие предопределенный смысл

Приложение C. Коды завершения, имеющие предопределенный смысл
Таблица C-1. «Зарезервированные» коды завершения

Код завершения
Смысл
Пример
Примечание

1
разнообразные ошибки
let «var1 = 1/0»
различные ошибки, такие как «деление на ноль» и пр.

2
согласно документации к Bash —

Приложение 1 Коды и обозначения основных клавиш

Приложение 1 Коды и обозначения основных клавиш
В табл. П1.1 приведены коды, обозначения целочисленных констант и описания основных клавиш.Таблица П1. 1 . Коды, обозначения и описания

Приложение B КОДЫ ВАЖНЫХ ТРАНЗАКЦИЙ

Приложение B
КОДЫ ВАЖНЫХ ТРАНЗАКЦИЙ
В следующей таблице перечислены коды наиболее важных транзакций для системного администрирования R/3 Можно вводить коды транзакций R/3 в поле команды SAP GUI Доступны следующие параметры:? /n<код_транзакции>Выход из активной в данный

Глава 5 Коды ошибок «голубого экрана» смерти

Глава 5
Коды ошибок «голубого экрана» смерти

Вы никогда не видели BSOD
Как уже было отмечено, BSOD (Blue Screen Of Death, голубой экран смерти) – особенность Windows. С помощью BSOD Windows общается с пользователем и сообщает номер ошибки и ее причину. Конечно, в большинстве случаев описание

Глава 6 Коды ошибок Windows

Глава 6
Коды ошибок Windows

Диалоговые окна
В диалоговых окнах обычно выводится код ошибки и ее краткое описание (рис. 6.1). Далеко не всегда короткого описания хватает, чтобы понять, что же случилось, и устранить причину ошибки. А иногда описание непонятно, потому что оно на

Приложение Д Коды ошибок DOS

Приложение Д Коды ошибок DOS
2 – файл не найден3 – путь доступа не найден5 – доступ отвергнут6 – недопустимая обработка8 – недостаточно памяти10 – недопустимая программная среда11 – неверный формат18 – файлы

Updated: 05/21/2018 by

DEC HEX Description
00 00h No error.
01 01h Function number invalid.
02 02h File not found.
03 03h Path not found.
04 04h Too many open tiles (no file handles available).
05 05h Access denied.
06 06h Invalid handle.
07 07h Memory control block destroyed.
08 08h Insufficient memory.
09 09h Memory block address invalid.
10 0Ah Environment invalid (usually >32k in length).
11 0Bh Format invalid.
12 0Ch Access code invalid.
13 0Dh Data invalid.
14 0Eh Reserved.
15 0Fh Invalid drive.
16 10h Attempted to remove current directory.
17 11h Not same device.
18 12h No more tiles.
19 13h Disk write-protected.
20 14h Unknown unit.
21 15h Drive not ready.
22 16h Unknown command.
23 17h Data error — CRC failed.
24 18h Bad request structure length.
25 19h Seek error.
26 1Ah Unknown media type (non-DOS disk).
27 1Bh Sector not found.
28 1Ch Printer out of paper.
29 1Dh Write fault.
30 1Eh Read fault.
31 1Fh General failure.
32 20h Sharing violation.
33 21h Lock violation.
34 22h Disk change invalid.
35 23h FCB unavailable.
36 24h Sharing buffer invalid.
37 25h (DOS 4+) code page mismatch.
38 26h (DOS 4+) cannot complete file operation (out of input).
39 27h (DOS 4+) insufficient disk space.
40 28h Reserved.
41 29h Reserved.
42 2Ah Reserved.
43 2Bh Reserved.
44 2Ch Reserved.
45 2Dh Reserved.
46 2Eh Reserved.
47 2Fh Reserved.
48 30h Reserved.
49 31h Reserved.
50 32h Network request not supported.
51 33h Remote computer not listening.
52 34h Duplicate name on network.
53 35h Network name not found.
54 36h Network busy.
55 37h Network device no longer exists.
56 38h Network BIOS command limit exceeded.
57 39h Network adapter hardware error.
58 3Ah Incorrect response from network.
59 3Bh Unexpected network error.
60 3Ch Incompatible remote adapter.
61 3Dh Print queue full.
62 3Eh Queue not full.
63 3Fh Not enough space to print file.
64 40h Network name was deleted.
65 41h Network access denied.
66 42h Network device type incorrect.
67 43h Network name not found.
68 44h Network name limit exceeded.
69 45h Network BIOS session limit exceeded.
70 46h Temporarily paused.
71 47h Network request not accepted.
72 48h Network print and disk redirection paused.
73 49h (LANtastic) invalid network version.
74 4Ah (LANtastic) account expired.
75 4Bh (LANtastic) password expired.
76 4Ch (LANtastic) login attempted invalid at this time.
77 4Dh (LANtastic) disk limit exceed on network node.
78 4Eh (LANtastic) not logged in to network node.
79 4Fh Reserved.
80 50h File exists.
81 51h Reserved.
82 52h Cannot make directory.
83 53h Fail on INT 24h.
84 54h (DOS 3.3+) too many redirections.
85 55h (DOS 3.3+) duplicate redirection.
86 56h (DOS 3.3+) invalid password.
87 57h (DOS 3.3+) invalid parameter.
88 58h (DOS 3.3+) network write fault.
89 59h (DOS 4+) function not supported on network.
90 5Ah (DOS 4+) required system component not installed.

Операционная система MS-DOS

1.6. Обработка ошибок

Когда программа обращается к DOS для выполнения какой-либо операции, она должна вызвать соответствующее прерывание, загрузив перед вызовом прерывания все необходимые операнды в регистры процессора. Если выполнение операции невозможно по каким-то причинам (неправильные операнды, устройство неработоспособно, запрашиваемая операция не поддерживается текущей версией DOS и т.д.), то для большинства функций DOS устанавливается признак ошибки — флаг переноса CARRY. Для DOS версии 2.0 и более поздних версий регистр AX при этом содержит код ошибки.

Приведем коды ошибок, возвращаемые программе через регистр AX:

1 Неправильный код функции
2 Файл не найден
3 Путь не найден
4 Слишком много открытых файлов
5 Доступ запрещен
6 Неправильный идентификатор файла
7 Разрушен блок управления памятью
8 Недостаточно памяти
9 Неправильный адрес блока памяти
10 Неправильная среда
11 Неправильный формат
12 Неправильный код доступа
13 Неправильные данные
14 Зарезервировано
15 Ошибка при указании дисковода
16 Невозможно удалить текущий каталог
17 Другое устройство
18 Больше нет подходящих файлов

Для DOS версии 3.0 и более поздних версий обработка ошибок значительно расширена. Введена функция 59h прерывания INT 21h, предназначенная для получения дополнительной информации об ошибках.

При вызове этой функции регистр BX должен содержать индикатор уровня анализа ошибок, который должен быть равен 0. Кроме расширенного кода ошибки, возвращаемого в регистре AX, программа может получить класс ошибки (регистр BH), код предполагаемых действий (регистр BL), локализацию ошибки, т.е. место, где произошла ошибка (регистр CH).

К сожалению, эта функция разрушает содержимое регистров CL, DX, SI, DI, BP, DS, ES. Программа, использующая функцию 59h, должна позаботиться о сохранении содержимого этих регистров.

Расширенный код ошибки, возвращаемый в регистре AX, может принимать значения, указанные в приводимой ниже таблице. Коды от 1 до 18 эквивалентны представленным выше и второй раз не приводятся.

Расширенные коды ошибок:

19 Запись на защищенный от записи диск
20 Задан неизвестный идентификатор устройства
21 Дисковод не готов
22 Неизвестная команда
23 Ошибка циклического кода проверки
24 Неправильная длина структуры запроса
25 Ошибка поиска
26 Неизвестен тип среды носителя данных
27 Сектор не найден
28 Кончилась бумага в принтере
29 Ошибка записи
30 Ошибка чтения
31 Общая ошибка
32 Нарушение разделения файла
33 Нарушение блокировки файла
34 Неправильная замена диска
35 FCB недоступен (слишком много блоков FCB)
36 Переполнился буфер разделения
37 Зарезервировано
38 Не завершена операция «Конец файла»
39-49 Зарезервировано
50 Сетевая функция не поддерживается
51 Удаленный компьютер «не слышит»
52 Дублирование имени в сети
53 Сетевое имя не найдено
54 Сеть занята
55 Сетевое устройство больше не существует
56 Превышен лимит команды сетевой BIOS
57 Ошибка в аппаратуре сетевого адаптера
58 Неправильный ответ из сети
59 Непредусмотренная ошибка сети
60 Несовместимый удаленный адаптер
61 Заполнена очередь печати
62 Для печатаемого файла недостаточно места
63 Печатающийся файл был удален
64 Сетевое имя было удалено
65 Доступ запрещен
66 Неправильный тип сетевого устройства
67 Сетевое имя не найдено
68 Превышен лимит сетевого имени
69 Превышен лимит сеанса сетевой BIOS
70 Временная пауза
71 Сетевой запрос отвергнут
72 Приостановлена печать или переадресация диска
73-79 Зарезервировано
80 Файл уже существует
81 Зарезервировано
82 Невозможно создать дескриптор в каталоге
83 Ошибка обработчика критических ошибок INT 24h
84 Слишком много переназначений
85 Двойное переназначение
86 Неправильный пароль
87 Неправильный параметр
88 Ошибка данных в сети
89 Нет такой функции в сети
90 Требуемый компонент системы не установлен

Класс ошибки, передаваемый в регистре BH, содержит информацию, которая поможет вам обработать данную ошибку:

1 Недостаточно ресурсов: блоков FCB, памяти и т.д.
2 Временная ситуация
3 Нет прав доступа
4 Внутренняя ошибка DOS
5 Ошибка аппаратуры
6 Системная ошибка DOS (нет CONFIG.SYS и т.п.)
7 Ошибка в прикладной программе
8 Файл или объект не найден
9 Неправильный формат файла или объекта
10 Файл или объект заблокирован
11 Ошибка носителя данных
12 Файл или объект уже существует
13 Прочие ошибки

Код предполагаемых действий, передаваемый через регистр BL, поможет Вашей программе правильно обработать ошибку и избежать зависания системы. Приведем таблицу кодов предполагаемых действий:

1 Повторить операцию позже. Можно спросить пользователя, желает он повторить операцию или завершить работу программы.
2 Повторить предыдущую операцию после небольшой паузы. Если ошибка не исчезла, следует спросить пользователя, будет он ждать и дальше, или следует завершить работу программы.
3 Если пользователь вводил какие-то данные для DOS, следует попросить его ввести эти данные еще раз (например, пользователь мог указать неправильный идентификатор диска или путь доступа к файлу).
4 Аварийно завершить работу прикладной программы с выполнением всех обычных завершающих действий (закрытие файлов, сброс буферов на диск, освобождение блоков памяти и т.д.)
5 Немедленный выход из программы без выполнения завершающих действий. Система находится в непредсказуемом состоянии.
6 Следует игнорировать ошибку.
7 Повторить операцию после того, как пользователь выполнит требуемые действия (установит дискету и т.п.).

Сведения о локализации ошибки передаются в регистре CH. Приведем таблицу кодов локализации:

1 Локализация ошибки не может быть определена (система не знает, где произошла ошибка).
2 Ошибка произошла в блочном устройстве (диск или магнитная лента).
3 Ошибка связана с сетью.
4 Ошибка произошла в символьном устройстве, например, в принтере.
5 Ошибка связана с оперативной памятью.

Если Ваша программа составлена на языке ассемблера, то после обращения к DOS через прерывание следует проверить состояние флага переноса:

Программы, составленные на языке Си, обращаются к прерываниям DOS обычно с помощью таких функций, как intdos, int86, intdosx и т.д. Для передачи параметров используются структуры REGS, WORDREGS, BYTEREGS, SREGS. Они описаны в файле dos.h, для использования этих структур программа должна содержать строку:

Значение флага переноса записывается в переменную cflag, определенную в структуре WORDREGS. Эта структура входит в объединение REGS:

Проверка переменной cflag может быть выполнена, например, таким образом:

Код ошибки при этом содержится в переменной outregs.x.ax.

Приведем пример программы, которая стирает каталог с именем DIR в текущем каталоге и, в случае ошибки, выводит расширенную информацию об ошибке, класс ошибки, код предполагаемых действий и код локализации ошибки:

При составлении программ обработки ошибок следует учитывать, что для DOS версии 1.0 при некоторых ошибках функции DOS возвращают в регистре AX значение 0FFh. Начиная с версии DOS 2.0, при ошибке устанавливается флаг переноса, код ошибки записывается в регистр AX. Однако для более полной диагностики причины ошибки следует использовать функцию 59h прерывания INT 21h.

Если Ваша программа, составленная на языке Си, вызывает функции DOS неявным образом (через функции стандартной библиотеки транслятора, такие как fprintf, puts и т.д.), то можно воспользоваться средствами обработки ошибок, входящими в состав стандартной библиотеки.

Когда при обращении к функциям DOS средствами стандартной библиотеки транслятора Си возникает ошибка, то в глобальную переменную errno записывается код ошибки.

Возможны следующие коды ошибок (они описаны в файле errno.h и stdlib.h):

ECHILD Нет порожденных процессов. Задача, не имеющая подзадач, выдала команду ожидания, или была выдана команда ожидания для подзадачи, имеющей признак NO-WAIT.
EAGAIN Больше нет процессов. Попытка создать новый процесс окончилась неудачно, т.к. либо больше нет резервов для создания процессов, либо недостаточно оперативной памяти, либо превышен максимальный уровень вложенности процессов.
E2BIG Слишком велик список аргументов. Либо размер списка аргументов превышает 128 байт, либо требуемый размер памяти для среды превышает 32К.
EACCES Доступ запрещен. Затребованный вид доступа к файлу запрещен или несовместим с установленными атрибутами файла (или каталога). Этот код ошибки передается при попытке чтения из неоткрытого файла, при попытке записи в файл, защищенный от записи, или при попытке открыть каталог как файл.
EBADF Плохой номер файла. Номер файла, использованный при вызове функции, имеет неверное значение или не относится к открытому файлу, или сделана попытка записи в открытый только для чтения файл или устройство.
EDEADLOCK Произошла блокировка ресурсов. Произведено 10 неудачных попыток заблокировать файл. Этот код ошибки используется только DOS версии 3.0 и более поздних версий.
EDOM Ошибка в аргументе математической функции. Аргумент математической функции вышел за пределы области определения этой функции.
EEXIST Файл уже существует. Сделана попытка создать файл с именем, которое уже используется существующим файлом.
EINVAL Неверный аргумент. Для одного из аргументов функции было задано неверное значение.
EMFILE Открыто слишком много файлов. Исчерпан запас номеров файлов , нельзя больше открыть ни одного файла.
ENOENT Нет такого файла или каталога. Запрошенный файл или каталог отсутствует или не может быть найден.
ENOEXEC Сделана попытка выполнить загрузочный файл, имеющий неправильный формат.
ENOMEM Недостаточно памяти. Эта ошибка появляется, когда недостаточно памяти для запуска процесса или для удовлетворения запроса программы на выделение блока памяти.
ENOSPC Нет свободного места на устройстве. На устройстве нет места для записи информации (например, переполнился диск).
ERANGE Слишком большой результат. Слишком большой по величине аргумент математической функции привел к частичной или полной потере значимости результата.
EXDEV Связь различных устройств. Сделана попытка переслать файл на другое устройство, используя функцию переименования.

Из приведенного выше списка кодов ошибок видно, что средствами стандартной библиотеки транслятора обрабатываются не только ошибки, возникающие при обращении к функциям DOS, но и ошибки, появляющиеся при работе с математическим функциями.

Для диагностической выдачи сообщения об ошибке можно использовать функции perror и strerror. Первая функция выводит в stderr соответствующее сообщение об ошибке, вторая только формирует строку сообщения. Функции perror и strerror имеют операнд — указатель на строку. Эта строка добавляется в начало стандартного сообщения об ошибке. Если к стандартному сообщению ничего добавлять не надо, операнд должен иметь значение NULL.

Следует заметить, что значение переменной errno отражает последнюю ошибку. Успешный вызов функции не приводит к автоматическому сбросу переменной errno.

Поэтому функции perror и strerror необходимо вызывать сразу после того, как вызываемая функция возвратит признак ошибки.

Приведем пример программы, обрабатывающей ошибки с использованием переменной errno:

DOS имеет еще одно средство для обработки ошибок — обработчик критических ошибок (Critical Error Handler). Этот модуль вызывается DOS, когда она получает сообщение об ошибке от драйвера устройства.

Модуль выдает на экран хорошо известное вам сообщение:

Это сообщение обычно появляется тогда, когда вы забываете вставить дискету или начинаете печатать при отключенном принтере.

Прикладные программы могут подключать свой модуль обработки критических ошибок вместо стандартного. Мы научимся обрабатывать критические ошибки в книге 3. Там же будет приведен соответствующий пример.

Источник

Понравилась статья? Поделить с друзьями:
  • Системная ошибка при скачивании
  • Системная ошибка гост
  • Системная ошибка при запуске симс 4
  • Системная ошибка выжившего это
  • Системная ошибка при запуске игры vulkan 1 dll