Приложение Д Коды ошибок 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 – файлы
Case
I am trying to replace all occurrences of <value>*</value>
into <value>file:\</value>
in a designated file test.txt
.
I work on Windows and use sed
I have installed with Win-32 compiled set of bash utils.
I use a following command:
sed -n "s/<value>.*</value>/<value>file:\\</value>/g" "test.txt" > "test.txt.new"
I want to run this command as a part of Wpkg script.
Problem
When I use this command from commandline, everything works properly.
But when I use this command via Wpkg script:
<install cmd='%BASH%sed -n "s/<value>.*</value>/<value>file:\\</value>/g;" test.txt" > "test.txt new"' />
…then what I get is:
Exit code returned non-successful value (2) on command '%BASH%sed -n "s/<value>
.*</value>/<value>file:\\</value>/g;" "test.txt" > "test.txt.new"'.
The above means that sed
application returned exit code 2. Additionaly, the new file has not been created.
I browsed google for a really long time and to my surprise, sed
seems to have a pretty poor documentation. I have found no documentation regarding this exit code.
Question
Anyone got a clue what does exit code 2 mean for sed
?
…or an alternative solution?
(must be unattended, pretty sure might use common bash tools)
Extended DOS Error Messages
0 No error occurred.
1 Invalid function number.
2 File not found.
3 Path not found.
4 Too many open files (no handles left).
5 Access denied.
6 Invalid handle.
7 Memory control blocks destroyed.
8 Insufficient memory.
9 Invalid memory-block address.
10 Invalid environment.
11 Invalid format.
12 Invalid access code.
13 Invalid data.
14 Reserved.
15 Invalid drive specified.
16 Attempting to remove current directory.
17 Not same device.
18 No more files.
19 Attempt to write on write-protected diskette.
20 Unknown unit.
21 Drive not ready.
22 Unknown command.
23 Data error – cyclic redundancy check.
24 Invalid request structure length.
25 Seek error.
26 Unknown media type.
27 Sector not found.
28 Printer is out of paper.
29 Write fault.
30 Read fault.
31 General failure.
32 Sharing violation.
33 Lock violation.
34 Invalid disk change.
35 FCB unavailable.
36 Sharing buffer overflow.
37 Code page does not match.
38 End of file reached.
39 Disk is full.
40-49 Reserved.
50 Network request not supported.
51 Remote network node is not online.
52 Duplicate file name in network.
53 Network path not found.
54 Network is busy.
55 Device is not installed in network.
56 Network command limit reached.
57 Network adapter hardware error.
58 Incorrect response in network.
59 Unexpected error in network.
60 Remote network adapter error.
61 Network printer queue is full.
62 No space in print spool file.
63 Print spool file deleted.
64 Network name deleted.
65 Access to network denied.
66 Device type invalid for network.
67 Network name not found.
68 Network name limit exceeded.
69 Network session limit exceeded.
70 Temporary pause in network.
71 Network request denied.
72 Pause in network print disk redirection.
73 Attempted write on protected disk.
74 General failure, single-byte character set.
75-79 Reserved.
80 File exists.
81 Reserved.
82 Cannot make directory entry.
83 Failure on INT 24.
84 Too many redirections.
85 Duplicate redirection.
86 Invalid password.
87 Invalid parameter.
88 Network device fault.
89 No process slots available.
90 System error.
91 Timer service table overflow.
92 Timer service table duplicate.
93 No items to work on.
95 Interrupted system call.
99 Device in use.
100 User/system open semaphore limit reached.
101 Exclusive semaphore already owned.
102 DosCloseSem found semaphore set.
103 Too many exclusive semaphore requests.
104 Operation invalid at interrupt time.
105 Previous semaphore owner terminated without freeing semaphore.
106 Semaphore limit exceeded.
107 Insert drive B disk into drive A.
108 Drive locked by another process.
109 Write on pipe with no reader.
110 Open/create failed due to explicit fail command.
111 Buffer passed to system call too small to hold return data.
112 Not enough space on the disk.
113 Cannot allocate another search structure and handle.
114 Target handle in DosDupHandle invalid.
115 Invalid user virtual address.
116 Error on display write or keyboard read.
117 Category for DevIOCtl not defined.
118 Invalid value passed for verify flag.
119 Level four driver not found.
120 Invalid function called.
121 Time-out occurred from semaphore API function.
122 Data buffer too small.
123 Illegal character or invalid file-system name.
124 Non-implemented level for information retrieval or setting.
125 No volume label found with DosQueryFSInfo function.
126 Module handle not found with DosQueryAddr(), DosQueryProcAddr().
127 Procedure address not found with DosQueryProcAddr().
128 DosWaitChild finds no children.
129 DosWaitChild children not terminated.
130 Handle operation invalid for direct disk-access handles.
131 Attempting seek to negative offset.
132 Application trying to seek on device or pipe.
133 Drive has previously joined drives.
134 Drive is already joined.
135 Drive is already substituted.
136 Cannot delete drive that is not joined.
137 Cannot delete drive that is not substituted.
138 Cannot join to a joined drive.
139 Cannot substitute to a substituted drive.
140 Cannot join to a substituted drive.
141 Cannot substitute to a joined drive.
142 Specified drive is busy.
143 Cannot join or substitute a drive to a directory on the same drive.
144 Directory must be a subdirectory of the root.
145 Directory must be empty to use join command.
146 Path specified is being used in a substitute.
147 Path specified is being used in a join.
148 Path specified is being used by another process.
149 Cannot join or substitute a drive that has a directory that is the target of a previous substitute.
150 System trace error.
151 DosWaitMuxWaitSem errors.
152 System limit of 100 entries reached.
153 Invalid list format.
154 Volume label too big.
155 Cannot create another TCB.
156 Signal refused.
157 Segment is discarded.
158 Segment is not locked.
159 Invalid thread-identity address.
160 Invalid environment pointer.
161 Invalid path name passed to exec.
162 Signal already pending.
163 Error with INT 24 mapping.
164 No more process slots.
165 Error with INT 24 mapping.
166 Default redirection return code.
167 Locking failed.
168 Swap I/O failed.
169 Swap in failed.
170 Segment is busy.
171-172 Reserved.
173 A lock request is not outstanding for the specified file range, or the range length is zero.
174 The file-system driver (FSD) does not support atomic lock operations. Versions of OS/2 prior to version 2.00 do not support atomic lock operations.
175 The file system driver (FSD) does not support shared read locks.
176-179 Reserved.
180 Invalid segment number.
181 Invalid call gate.
182 Invalid ordinal.
183 Shared segment already exists.
184 No child process to wait for.
185 NoWait specified and child alive.
186 Invalid flag number.
187 Semaphore does not exist.
188 Invalid starting code segment, incorrect END (label) directive.
189 Invalid stack segment.
190 Invalid module type – dynamic-link library file cannot be used as an application. Application cannot be used as a dynamic-link library.
191 Invalid EXE signature – file is a DOS mode program or an improper program.
192 EXE marked invalid – link detected errors when the application was created.
193 Invalid EXE format – file is a DOS mode program or an improper program.
194 Iterated data exceeds 64KB – there is more than 64KB of data in one of the segments of the file.
195 Invalid minimum allocation size – the size is specified to be less than the size of the segment data in the file.
196 Dynamic link from invalid privilege level – privilege level 2 routine cannot link to dynamic-link libraries.
197 IOPL not enabled – IOPL set to NO in CONFIG.SYS.
198 Invalid segment descriptor privilege level – can only have privilege levels of 2 and 3.
199 Automatic data segment exceeds 64KB.
200 Privilege level 2 segment must be movable.
201 Relocation chain exceeds segment limit.
202 Infinite loop in relocation chain segment.
203 Environment variable not found.
204 Not current country.
205 No signal sent – no process in the command subtree has a signal handler.
206 File name or extension is greater than 8.3 characters.
207 Privilege level 2 stack is in use.
208 Meta (global) expansion is too long.
209 Invalid signal number.
210 Inactive thread.
211 File system information is not available for this file.
212 Locked error.
213 Attempted to execute a non-family API in DOS mode.
214 Too many modules.
215 Nesting is not allowed.
217 Zombie process.
218 Stack is in high memory.
219 Invalid exit routine ring.
220 Get buffer failed.
221 Flush buffer failed.
222 Transfer is too long.
224 The application window was created without the FCF_TASKLIST style, or the application window not yet been created or has already been destroyed.
228 No child process.
229 Invalid session.
230 Non-existent pipe or invalid operation.
231 Pipe is busy.
232 No data available on non-blocking read.
233 Pipe was disconnected by server.
234 More data is available.
240 Session was dropped due to errors.
250 Renaming a directory that would cause a circularity problem.
251 Renaming a directory that is in use.
252 Trying to access nonexistent FSD.
253 Invalid pseudo device.
254 Invalid character in name, or invalid cbName.
255 List does not match its size, or there are invalid EAs in the list.
256 FEAList is longer than 64K-1 bytes.
257 String does not match expression.
259 DosQueryFSAttach ordinal query.
260 DOS mode findfirst/next search structure reused.
261 Character not found.
262 Stack request exceeds system limit.
263 Invalid attribute.
264 Invalid starting ring.
265 Invalid DLL INIT ring.
266 Cannot copy.
267 Used by DOSCOPY in doscall1.
268 Oplocked file.
269 Oplock thread exists.
270 Volume changed.
271-273 Reserved.
274 System is already shut down.
275 Buffer is not big enough to hold the EAs.
276 EA file has been damaged.
277 EA table is full.
278 EA handle is invalid.
279 No cluster.
280 Cannot create the EA file.
281 Cannot open the EA file.
282 Destination file system does not support EAs.
283 Destination file system does not support EAs, and the source file’s EAs contain a need EA.
284 The handle already exists.
285 The name already exists.
286 The list of semaphores in a muxwait semaphore is empty.
287 The calling thread owns one or more of the mutex semaphores in the list.
288 Caller does not own the semaphore.
289 Parameter is not large enough to contain all of the semaphore records in the muxwait semaphore.
290 Limit reached for number of handles.
291 There are too many files or semaphores open.
292 Attempted to create wrong type of semaphore.
293 Code is not used.
294 Thread has not terminated.
295 Initialization routine failed.
296 Module is in use.
297 There are not enough watchpoints.
298 Post count limit was reached for an event semaphore.
299 Event semaphore is already posted.
300 Event semaphore is already reset.
301 Semaphore is busy.
302 Reserved
303 Invalid process identity.
304 Invalid priority delta.
305 Not descendant.
306 Requestor not session manager.
307 Invalid P class.
308 Invalid scope.
309 Invalid thread identity.
310 Cannot shrink segment – DosSubSetMem.
311 No memory to satisfy request – DosSubAllocMem.
312 Overlap of the specified block with a block of allocated memory – DosSubFreeMem.
313 Invalid size parameter – DosSubAllocMem or DosSubFreeMem.
314 Invalid flag parameter – DosSubSetMem.
315 Invalid segment selector.
316 Message too long for buffer.
317 Message identity number not found.
318 Unable to access message file.
319 Invalid message file format.
320 Invalid insertion variable count.
321 Unable to perform function.
322 Unable to wake up.
323 Invalid system semaphore.
324 No timers available.
326 Invalid timer handle.
327 Date or time invalid.
328 Internal system error.
329 Current queue name does not exist.
330 Current process does not own queue.
331 Current process owns queue.
332 Duplicate queue name.
333 Queue element does not exist.
334 Inadequate queue memory.
335 Invalid queue name.
336 Invalid queue priority parameter.
337 Invalid queue handle.
338 Queue link not found.
339 Queue memory error.
340 Previous queue element was at end of queue.
341 Process does not have access to queues.
342 Queue is empty.
343 Queue name does not exist.
344 Queues not initialized.
345 Unable to access queues.
346 Unable to add new queue.
347 Unable to initialize queues.
349 Invalid function replaced.
350 Invalid pointer to parameter.
351 Invalid pointer to attribute.
352 Invalid pointer to row.
353 Invalid pointer to column.
354 Invalid pointer to length.
355 Unsupported screen mode.
356 Invalid cursor width value.
357 Invalid cursor attribute value.
358 Invalid row value.
359 Invalid column value.
360 Invalid TopRow value.
361 Invalid BotRow value.
362 Invalid right column value.
363 Invalid left column value.
364 Call issued by other than session manager.
365 Value is not for save or restore.
366 Invalid wait flag setting.
367 Screen not previously locked.
368 Caller not session manager.
369 Invalid session identity.
369 Invalid session ID.
370 No sessions available.
370 No sessions available.
371 Session not found.
371 Session not found.
372 Title sent by shell or parent cannot be changed.
373 Invalid parameter to keyboard.
374 No device.
375 Invalid I/O wait specified.
376 Invalid length for keyboard.
377 Invalid echo mode mask.
378 Invalid input mode mask.
379 Invalid parameters to DosMon.
380 Invalid device name string.
381 Invalid device handle.
382 Buffer too small.
383 Buffer is empty.
384 Data record is too large.
385 Mouse device closed (invalid device handle).
386 Mouse device closed (invalid device handle).
387 Parameters invalid for display mode.
388 Function assigned and cannot be reset.
389 Parameters invalid for display mode.
390 Module not valid.
391 Entry point not valid.
392 Function mask invalid.
393 No valid data.
394 Pointer drawn.
395 Invalid frequency for beep.
396 Cannot find COUNTRY.SYS file.
397 Cannot open COUNTRY.SYS file.
398 Country code not found.
399 Table returned information truncated, buffer is too small.
400 Selected type does not exist.
401 Selected type is not in file.
402 Valid from session manager only.
403 Invalid ASCIIZ length.
404 VioDeRegister not allowed.
405 Pop-up window not allocated.
406 Pop-up window on screen (NoWait).
407 Valid from session manager only.
408 Invalid ASCIIZ length.
409 Invalid replacement mask.
410 KbdRegister not allowed.
411 KbdDeRegister not allowed.
412 Valid from session manager only.
413 Invalid ASCIIZ length.
414 Invalid replacement mask.
415 Mouse register not allowed.
416 Mouse deregister not allowed.
417 Invalid action specified.
418 INIT called more than once, or invalid session identity.
419 New session number.
420 Caller is not shell.
421 Invalid parameters passed.
422 Save/restore already owned.
423 Non-destruct return (undo).
424 Caller invalid function.
425 Caller not session manager.
426 Vio register not allowed.
427 No mode restore thread in SG.
428 No save/restore thread in SG.
429 Function invalid in background.
430 Function not allowed during pop-up window.
431 Caller is not the base shell.
432 Invalid status requested.
433 NoWait parameter out of bounds.
434 Error returned from Scroll Lock.
435 Invalid parameters for IOWait.
436 Invalid VIO handle.
437 Function not allowed during screen lock.
438 Invalid VIO length.
439 Invalid KBD handle.
440 Ran out of handles.
441 Unable to create kcb.
442 Unsuccessful code-page load.
443 Invalid code-page identity.
444 No code page support.
445 Keyboard focus required.
446 Calling thread has an outstanding focus.
447 Keyboard is busy.
448 Invalid code page.
449 Focus attempt failed.
450 Session is not selectable.
451 Parent/child session is not foreground.
452 Not parent of requested child.
453 Invalid session start mode.
454 Invalid session start related option.
455 Invalid session bond option.
456 Invalid session select option.
457 Session started in background.
458 Invalid session stop option.
459 Reserved parameters are not zero.
460 Session parent process already exists.
461 Invalid data length.
462 Parent is not bound.
463 Retry request block allocation.
464 This call is not allowed for a detached PID.
465 This call is not allowed for a detached PID.
466 This call is not allowed for a detached PID.
467 No font is available to support the mode.
468 User font is active.
469 Invalid code page specified.
470 System displays do not support code page.
471 Current display does not support code page.
472 Invalid code page.
473 Code page list is too small.
474 Code page was not moved.
475 Mode switch initialization error.
476 Code page was not found.
477 Internal error.
478 Invalid start session trace indicator.
479 VIO internal resource error.
480 VIO shell initialization error.
481 No session manager hard errors.
482 DosSetProcessCp is unable to set a KBD or VIO code page.
483 Error during VIO pop-up window.
484 Critical section overflow.
485 Critical section underflow.
486 Reserved parameter is not zero.
487 Invalid physical address.
488 At least one selector must be requested.
489 Not enough GDT selectors to satisfy request.
490 Not a GDT selector.
491 Invalid program type.
492 Invalid program control.
493 Invalid inherit option.
494 ERROR_VIO_EXTENDED_SG
495 ERROR_VIO_NOT_PRES_MGR_SG
496 ERROR_VIO_SHIELD_OWNED
497 ERROR_VIO_NO_MORE_HANDLES
498 ERROR_VIO_SEE_ERROR_LOG
499 ERROR_VIO_ASSOCIATED_DC
500 ERROR_KBD_NO_CONSOLE
501 ERROR_MOUSE_NO_CONSOLE
502 ERROR_MOUSE_INVALID_HANDLE
503 ERROR_SMG_INVALID_DEBUG_PARMS
504 ERROR_KBD_EXTENDED_SG
505 ERROR_MOU_EXTENDED_SG
506 ERROR_SMG_INVALID_ICON_FILE
507 ERROR_TRC_PID_NON_EXISTENT
508 ERROR_TRC_COUNT_ACTIVE
509 ERROR_TRC_SUSPENDED_BY_COUNT
510 ERROR_TRC_COUNT_INACTIVE
511 ERROR_TRC_COUNT_REACHED
512 ERROR_NO_MC_TRACE
513 ERROR_MC_TRACE
514 ERROR_TRC_COUNT_ZERO
515 ERROR_SMG_TOO_MANY_DDS
516 ERROR_SMG_INVALID_NOTIFICATION
517 ERROR_LF_INVALID_FUNCTION
518 ERROR_LF_NOT_AVAIL
519 ERROR_LF_SUSPENDED
520 ERROR_LF_BUF_TOO_SMALL
521 ERROR_LF_BUFFER_CORRUPTED
521 ERROR_LF_BUFFER_FULL
522 ERROR_LF_INVALID_DAEMON
522 ERROR_LF_INVALID_RECORD
523 ERROR_LF_INVALID_TEMPL
523 ERROR_LF_INVALID_SERVICE
524 ERROR_LF_GENERAL_FAILURE
525 ERROR_LF_INVALID_ID
526 ERROR_LF_INVALID_HANDLE
527 ERROR_LF_NO_ID_AVAIL
528 ERROR_LF_TEMPLATE_AREA_FULL
529 ERROR_LF_ID_IN_USE
530 ERROR_MOU_NOT_INITIALIZED
531 ERROR_MOUINITREAL_DONE
532 ERROR_DOSSUB_CORRUPTED
533 ERROR_MOUSE_CALLER_NOT_SUBSYS
534 ERROR_ARITHMETIC_OVERFLOW
535 ERROR_TMR_NO_DEVICE
536 ERROR_TMR_INVALID_TIME
537 ERROR_PVW_INVALID_ENTITY
538 ERROR_PVW_INVALID_ENTITY_TYPE
539 ERROR_PVW_INVALID_SPEC
540 ERROR_PVW_INVALID_RANGE_TYPE
541 ERROR_PVW_INVALID_COUNTER_BLK
542 ERROR_PVW_INVALID_TEXT_BLK
543 ERROR_PRF_NOT_INITIALIZED
544 ERROR_PRF_ALREADY_INITIALIZED
545 ERROR_PRF_NOT_STARTED
546 ERROR_PRF_ALREADY_STARTED
547 ERROR_PRF_TIMER_OUT_OF_RANGE
548 ERROR_PRF_TIMER_RESET
639 ERROR_VDD_LOCK_USEAGE_DENIED
640 ERROR_TIMEOUT
641 ERROR_VDM_DOWN
642 ERROR_VDM_LIMIT
643 ERROR_VDD_NOT_FOUND
644 ERROR_INVALID_CALLER
645 ERROR_PID_MISMATCH
646 ERROR_INVALID_VDD_HANDLE
647 ERROR_VLPT_NO_SPOOLER
648 ERROR_VCOM_DEVICE_BUSY
649 ERROR_VLPT_DEVICE_BUSY
650 ERROR_NESTING_TOO_DEEP
651 ERROR_VDD_MISSING
691 ERROR_IMP_INVALID_PARM
692 ERROR_IMP_INVALID_LENGTH
693 MSG_HPFS_DISK_ERROR_WARN
730 ERROR_MON_BAD_BUFFER
731 ERROR_MODULE_CORRUPTED
2055 ERROR_LF_TIMEOUT
2057 ERROR_LF_SUSPEND_SUCCESS
2058 ERROR_LF_RESUME_SUCCESS
2059 ERROR_LF_REDIRECT_SUCCESS
2060 ERROR_LF_REDIRECT_FAILURE
32768 ERROR_SWAPPER_NOT_ACTIVE
32769 ERROR_INVALID_SWAPID
32770 ERROR_IOERR_SWAP_FILE
32771 ERROR_SWAP_TABLE_FULL
32772 ERROR_SWAP_FILE_FULL
32773 ERROR_CANT_INIT_SWAPPER
32774 ERROR_SWAPPER_ALREADY_INIT
32775 ERROR_PMM_INSUFFICIENT_MEMORY
32776 ERROR_PMM_INVALID_FLAGS
32777 ERROR_PMM_INVALID_ADDRESS
32778 ERROR_PMM_LOCK_FAILED
32779 ERROR_PMM_UNLOCK_FAILED
32780 ERROR_PMM_MOVE_INCOMPLETE
32781 ERROR_UCOM_DRIVE_RENAMED
32782 ERROR_UCOM_FILENAME_TRUNCATED
32783 ERROR_UCOM_BUFFER_LENGTH
32784 ERROR_MON_CHAIN_HANDLE
32785 ERROR_MON_NOT_REGISTERED
32786 ERROR_SMG_ALREADY_TOP
32787 ERROR_PMM_ARENA_MODIFIED
32788 ERROR_SMG_PRINTER_OPEN
32789 ERROR_PMM_SET_FLAGS_FAILED
32790 ERROR_INVALID_DOS_DD
32791 ERROR_BLOCKED
32792 ERROR_NOBLOCK
32793 ERROR_INSTANCE_SHARED
32794 ERROR_NO_OBJECT
32795 ERROR_PARTIAL_ATTACH
32796 ERROR_INCACHE
32797 ERROR_SWAP_IO_PROBLEMS
32798 ERROR_CROSSES_OBJECT_BOUNDARY
32799 ERROR_LONGLOCK
32800 ERROR_SHORTLOCK
32801 ERROR_UVIRTLOCK
32802 ERROR_ALIASLOCK
32803 ERROR_ALIAS
32804 ERROR_NO_MORE_HANDLES
32805 ERROR_SCAN_TERMINATED
32806 ERROR_TERMINATOR_NOT_FOUND
32807 ERROR_NOT_DIRECT_CHILD
32808 ERROR_DELAY_FREE
32809 ERROR_GUARDPAGE
32900 ERROR_SWAPERROR
32901 ERROR_LDRERROR
32902 ERROR_NOMEMORY
32903 ERROR_NOACCESS
32904 ERROR_NO_DLL_TERM
65026 ERROR_CPSIO_CODE_PAGE_INVALID
65027 ERROR_CPSIO_NO_SPOOLER
65028 ERROR_CPSIO_FONT_ID_INVALID
65033 ERROR_CPSIO_INTERNAL_ERROR
65034 ERROR_CPSIO_INVALID_PTR_NAME
65037 ERROR_CPSIO_NOT_ACTIVE
65039 ERROR_CPSIO_PID_FULL
65040 ERROR_CPSIO_PID_NOT_FOUND
65043 ERROR_CPSIO_READ_CTL_SEQ
65045 ERROR_CPSIO_READ_FNT_DEF
65047 ERROR_CPSIO_WRITE_ERROR
65048 ERROR_CPSIO_WRITE_FULL_ERROR
65049 ERROR_CPSIO_WRITE_HANDLE_BAD
65074 ERROR_CPSIO_SWIT_LOAD
65077 ERROR_CPSIO_INV_COMMAND
65078 ERROR_CPSIO_NO_FONT_SWIT
65079 ERROR_ENTRY_IS_CALLGATE
Это перевод How did MS-DOS report error codes?. Автор: Реймонд Чен.
Вызовы функций MS-DOS (ах, этот int 21h) обычно сообщали об ошибке установкой флага CF и записью кода ошибки в регистр AX. Эти коды ошибок выглядят ужасно знакомыми сегодня: это те же самые коды ошибок, что использует Windows. Все эти малозначные коды типа ERROR_FILE_NOT_FOUND ведут свою историю ещё из MS-DOS (и, вероятно, даже глубже в прошлое).
Коды ошибок являются одной из главных проблем совместимости, потому что вы не можете просто добавить новые коды без ломания существующих программ. Например, стал широко известным тот факт, что «Единственными возможными кодами ошибок, возвращаемыми OpenFile, могли быть 3 (path not found), 4 (too many open files) и 5 (access denied)». Если бы MS-DOS попробовала вернуть код ошибки не из этого списка, программы бы вылетали, потому что они использовали возвращаемое значение как индекс в таблице (массиве) без проверки диапазона. Возврат новой ошибки типа 32 (sharing violation) означало бы, что эти программы переводили бы управление на мусорный адрес и вылетали.
Ещё о совместимости кодов ошибок — в другой раз.
Когда заходит речь о добавлении новых кодов ошибок, совместимость диктует, чтобы вы не меняли коды, уже возвращаемые функциями. Поэтому, если происходит новый тип ошибки (например, a sharing violation), то выбирается один из предыдущих «хорошо-известных» кодов ошибок, который больше всего похож по смыслу на новый код (для «sharing violation» наилучшим совпадением будет, вероятно, «access denied»). Программы, которые были в курсе про новые коды ошибок, могли вызвать новую функцию «получить расширенный код ошибки», которая возвращала один из новых кодов ошибок (в нашем случае — 32 для sharing violation).
Функция «получить расширенный код ошибки» возвращала и другую информацию. Она выдавала вам «класс ошибки», который давай вам примерное представление о типе проблемы (нехватка ресурсов? отказ физического оборудования? ошибка конфигурации системы?), «местоположение ошибки», которое сообщало вам тип устройства, вызвавшего проблему (дискета? последовательный порт? память?) и, что я нахожу самым интересным, «предполагаемое действие». Предполагаемыми действиями могли быть вещи типа «подождать и повторить» (для временных проблем), «попросить пользователя повторить ввод» (например, файл не найден) или даже «попросить пользователя выполнить корректирующее действие» (например, проверить, что диск правильно вставлен).
Назначением этой мета-информации было позволить программе восстанавливаться после ошибок, коды которых ей незнакомы. Вы могли бы тогда просто следовать мета-данным, чтобы узнать какого типа была ошибка, где она произошла и что вы могли бы сделать для восстановления.
К сожалению, этот тип расширенной информации был потерян, когда мы покинули мир 16-ти разрядного программирования. Теперь у вас есть либо код ошибки, либо исключение и вам лучше бы заранее знать, как их следует обрабатывать. Например, если вы вызываете некоторую функцию и она возвращает какой-то код ошибки, то как вы узнаете была ли эта ошибка из-за логики в вашей программе (скажем, использование описателя после закрытия) или же это было какое-то внешнее условие (например, ошибка подключения к удалённому серверу)? Никак.
Это в особенности ужасно для программирования на исключениях. Когда вы ловите исключение, вы не можете сказать, глядя на него, либо это что-то, что должно привести к вылету вашей программы (ошибка во внутренней логике типа разыменования nil) или же что-то, что не представляет ошибки в вашей программе, а было вызвано внешними условиями (ошибка соединения, файл не найден и т.п.).
Примечания переводчика:
Видимо, Реймонд говорит только о системном механизме исключений. Напомню, что на системном уровне данные исключения — это запись TExceptionRecord. У неё есть, конечно же, адрес инструкции, вызвавшей исключение, а также числовой код (аналог кода ошибки), флаги (свойства) и ограниченное кол-во пользовательской информации. В такой реализации исключения, конечно страшны, поскольку они имеют все недостатки кодов ошибок (которые только усугубляются способностью исключений уводить выполнение от места возникновения проблемы к её обработчику).
Однако в модели исключений Delphi (которая является обёрткой над системным механизмом) у вас нет кодов, зато есть классы. Причём классы можно наследовать. Из этого автоматически получается два следующих преимущества, которые решают две соответствующие проблемы, обсуждаемые выше.
Во-первых, из-за наследования вы спокойно можете расширять пространство ошибок: вводя новые классы, дочерние к уже существующим классам исключений. Вы не поломаете при этом никакой код, поскольку он как обрабатывал исключения определённых классов, так и продолжит это делать — теперь уже включая и ваши новые классы (и всё благодаря наследованию). Например, если код реагирует на ELoadConfigError, то вы можете ввести новое исключение вида ELoadConfigFileReadingError = class(ELoadConfigError) — и старый код по-прежнему будет корректно реагировать на все ошибки. А те, кто в курсе про новые классы (ELoadConfigFileReadingError), смогут реагировать только на них. Таким образом все стороны оказываются удовлетворены.
Во-вторых, вы можете передавать произвольную информацию вместе с исключением. Кроме того, из-за предыдущего пункта, исключения используются несколько иным способом, чем коды ошибок. Имеется ввиду, что разные функции возвращают одинаковый код ошибки — в первую очередь из-за сложностей расширения поля кодов ошибок. С другой стороны, исключения обычно создаются в привязке к вызывающему (пример: EListError, EStreamError). Что делает идентификацию проблемы тривиальной, и отпадает необходимость в чём-то типа дополнительной мета-информации, описанной выше. Разумеется, речь идёт только о корректном программирования на исключениях, а не когда вы используете только Exception для всех задач.
Ann Katholi
unread,
Jul 13, 1995, 11:00:00 AM7/13/95
to
My son’s computer is getting a DOS error 12 when he tries to run
Microsoft Space Simulator.
Where can I find a list of DOS errror numbers? Or, does anyone know
what error 12 is?
Space Sim starts out ok, but after a short while it blows away with
the Error 12, back to an otherwise blank screen. This donesn’t happen
at any particular place in the game, in fact, when my husband tried to
see where it happened, it never did. Of course, my husband doesn;t
really know how to play Space Sim & he crashed into the moon rather
quickly.
TIA
Joe Morris
unread,
Jul 14, 1995, 11:00:00 AM7/14/95
to
j…@olivetti.dk writes:
> Values for extended error code:
> 01h function number invalid
> 02h file not found
> [etc.]
I suspect that the original poster is reporting EMM386 errors, not
DOS error numbers which are almost never seen by the end user. EMM386
errors are seen all too frequently…
Here’s the list:
EMM386 Exception Error Codes and their meanings.
Code Meaning
—- ——-
0 Divide error
1 Debugger interrupt
2 Nonmaskable interrupt
3 Breakpoint
4 Overflow interrupt
5 Array boundary violation
6 Invalid opcode
7 Coprocessor not available
8 Double fault
9 Coprocessor segment overrun
10 Invalid task state segment
11 Segment not present
12 Stack exception
13 General protection violation
14 Page fault
16 Coprocessor error
Joe Morris / MITRE
Robert Jan Scheer
unread,
Jul 14, 1995, 11:00:00 AM7/14/95
to
Ann Katholi (akat…@uasom.meis.uab.edu) wrote:
: Where can I find a list of DOS errror numbers? Or, does anyone know
: what error 12 is?
Here’s one. Together with PARSE, I/O, CRITICAL and FATAL errors.
Don’t get too depressed
1 PARSE error — Too many parameters
2 PARSE error — Required parameter missing
3 PARSE error — Invalid switch
4 PARSE error — Invalid keyword
6 PARSE error — Parameter value not in allowed range
7 PARSE error — Parameter value not allowed
8 PARSE error — Parameter value not allowed
9 PARSE error — Parameter format not correct
10 PARSE error — Invalid parameter
11 PARSE error — Invalid parameter combination
1 DOS error — Bad function
2 DOS error — File Not Found
3 DOS error — Path Not Found
4 DOS error — Too many open files
5 DOS error — File access Denied
6 DOS error — Invalid File Handle
7 DOS error — Memory destroyed
8 DOS error — Out of memory
9 DOS error — Bad memory block
10 DOS error — Bad environment
11 DOS error — Bad format
12 DOS error — Invalid File access code
13 DOS error — Invalid data
14 DOS error — Internal DOS error
15 DOS error — Invalid Drive Number
16 DOS error — Cannot remove current directory
17 DOS error — Cannot Rename across drives (or «Not same device»)
18 DOS error — File not found
19 DOS error — Disk is write protected
20 DOS error — Bad disk unit
21 DOS error — Drive not ready—close door
22 DOS error — Bad disk command
23 DOS error — Data error
24 DOS error — Bad call format
25 DOS error — Seek error
26 DOS error — Non-DOS disk
27 DOS error — Sector not found
28 DOS error — Out of paper
29 DOS error — Write error
30 DOS error — Read error
31 DOS error — General failure
32 DOS error — Sharing violation
33 DOS error — Lock violation
34 DOS error — Invalid disk change
35 DOS error — FCB unavailable
36 DOS error — Sharing buffer overflow
40 DOS error — Not ready
41 DOS error — File allocation table bad
50 DOS error — Invalid net request
51 DOS error — Remote computer not listening
52 DOS error — Duplicate name on net
53 DOS error — Net name not found
54 DOS error — Net busy
55 DOS error — Net device no longer exists
56 DOS error — NetBIOS command limit exceeded
57 DOS error — Net adapter hardware error
58 DOS error — Bad response from net
59 DOS error — Unexpected net error
60 DOS error — Incompatible remote adapter
61 DOS error — Print queue full
62 DOS error — Queue not full
63 DOS error — No room for print file
64 DOS error — Net name was deleted
65 DOS error — Access denied
66 DOS error — Net device type incorrect
67 DOS error — Net name not found
68 DOS error — Net name limit exceeded
69 DOS error — NetBIOS session limit exceeded
70 DOS error — Temporarily paused
71 DOS error — Net request not accepted
72 DOS error — Redirection is paused
80 DOS error — File exists
82 DOS error — Can’t make directory entry
83 DOS error — Fail on INT 24
84 DOS error — Too many redirections
85 DOS error — Duplicate redirection
86 DOS error — Invalid password
87 DOS error — Invalid parameter
88 DOS error — Net device fault
100 I/O error — Disk read error
101 I/O error — Disk write error
102 I/O error — File not assigned
103 I/O error — File not open
104 I/O error — File not open for input
105 I/O error — File not open for output
106 I/O error — Invalid numberic format
150 CRITICAL error — Disk is write-protected
151 CRITICAL error — Unknown unit!
152 CRITICAL error — Drive not ready!
153 CRITICAL error — Unknown command
154 CRITICAL error — CRC error in data
155 CRITICAL error — Bad drive request structure length!
156 CRITICAL error — Disk seek error
157 CRITICAL error — Unknown media type
158 CRITICAL error — Sector not found
159 CRITICAL error — Printer out of paper
160 CRITICAL error — Device write fault
161 CRITICAL error — Device read fault
162 CRITICAL error — Hardware Failure
200 FATAL error — Division by zero
201 FATAL error — Range check error
202 FATAL error — Stack overflow error
203 FATAL error — Heap overflow error
204 FATAL error — Invalid pointer operation
205 FATAL error — Floating-Point overflow
206 FATAL error — Floating-Point underflow
207 FATAL error — Invalid Floating-point operation
208 FATAL error — Overlay manager not installed
209 FATAL error — Overlay file read error
210 FATAL error — Object not initialized
211 FATAL error — Call to abstract method
212 FATAL error — Stream registration error
213 FATAL error — Collection index out of range
214 FATAL error — Collection overflow error
j…@olivetti.dk
unread,
Jul 14, 1995, 11:00:00 AM7/14/95
to
>Where can I find a list of DOS errror numbers? Or, does anyone know
>what error 12 is?
>
>Space Sim starts out ok, but after a short while it blows away with
>the Error 12, back to an otherwise blank screen. This donesn’t happen
>at any particular place in the game, in fact, when my husband tried to
>see where it happened, it never did. Of course, my husband doesn;t
>really know how to play Space Sim & he crashed into the moon rather
>quickly.
>
>TIA
>
>
Values for extended error code:
01h function number invalid
02h file not found
03h path not found
04h too many open files (no handles available)
05h access denied
06h invalid handle
07h memory control block destroyed
08h insufficient memory
09h memory block address invalid
0Ah environment invalid (usually >32K in length)
0Bh format invalid
0Ch access code invalid
0Dh data invalid
0Fh invalid drive
10h attempted to remove current directory
11h not same device
12h no more files
13h disk write-protected
14h unknown unit
15h drive not ready
16h unknown command
17h data error (CRC)
18h bad request structure length
19h seek error
1Ah unknwon media type (non-DOS disk)
1Bh sector not found
1Ch printer out of paper
1Dh write fault
1Eh read fault
1Fh general failure
20h sharing violation
21h lock violation
22h disk change invalid
ES:DI -> ASCIZ volume label of required disk
23h FCB unavailable
24h sharing buffer overflow
25h reserved
26h (LANtastic) cannot complete file operation
27h-31h reserved
32h Network request not supported (DOS 3.1 + MS Networks)
33h Remote computer not listening
34h Duplicate name on network
35h Network name not found
36h Network busy
37h Network device no longer exists
38h Network BIOS command limit exceeded
39h Network adapter hardware error
3Ah Incorrect response from network
3Bh Unexpected network error
3Ch Incompatible remote adapter
3Dh Print queue full
3Eh Queue not full
3Fh Not enough space to print file
40h Network name was deleted
41h Network: Access denied
42h Network device type incorrect
43h Network name not found
44h Network name limit exceeded
45h Network BIOS session limit exceeded
46h Temporarily paused
47h Network request not accepted
48h (DOS 3.1 + MS Networks) Print/disk redirection paused
49h (LANtastic) invalid network version
4Ah (LANtastic) account expired
4Bh (LANtastic) password expired
4Ch (LANtastic) login attempt invalid at this time
4Dh-4Fh reserved
50h file exists
51h reserved
52h cannot make directory
53h fail on INT 24h
54h (DOS 3.3+) too many redirections
55h (DOS 3.3+) duplicate redirection
56h (DOS 3.3+) invalid password
57h (DOS 3.3+) invalid parameter
58h (DOS 3.3+) network write fault
59h (LANtastic) function not supported on network
5Ah (LANtastic) required system component not installed
jlc
Andrew McLaren
unread,
Jul 15, 1995, 11:00:00 AM7/15/95
to
akat…@uasom.meis.uab.edu (Ann Katholi) wrote:
>Where can I find a list of DOS errror numbers? Or, does anyone know
>what error 12 is?
>Space Sim starts out ok, but after a short while it blows away with
>the Error 12, back to an otherwise blank screen. This donesn’t happen
In any troubleshooting, it is pretty useful to get the EXACT error
message. There is no «Dos Error 12» as such, I suspect what you are
getting is an Exception Error 12. This is an error message generated
by EMM386.EXE when it receives a «distress signal» from the CPU,
indicating that a Stack Exception has occurred. A stack exception is
caused by the machine running out of stackspace to handle interrupts.
The workaround is to give your system more stackspace by using the
STACKS command in CONFIG.SYS. Start with a line like STACKS=9,256. If
that doesn’t fix it, try STACKS=18,256 or even STACKS=18,512. For more
info about the STACKS command, see the on-line help:
C:>help stacks
Hope this helps
—
Andrew McLaren, Camperdown NSW Australia