操作系统OS Error问题

在笔者使用脚本的过程中,经常会遇到OS Error问题,包括Windows/Linux操作系统。因此,本篇文章仅对OS Error做一个汇总。

Windows操作系统

Windows Error Code定义在 WinError.h头文件中,0-100的错误码意义如下(直接通过 Error Code搜索)。

ERROR_SUCCESS
0 (0x0)
The operation completed successfully.
ERROR_INVALID_FUNCTION
1 (0x1)
Incorrect function.
ERROR_FILE_NOT_FOUND
2 (0x2)
The system cannot find the file specified.
ERROR_PATH_NOT_FOUND
3 (0x3)
The system cannot find the path specified.
ERROR_TOO_MANY_OPEN_FILES
4 (0x4)
The system cannot open the file.
ERROR_ACCESS_DENIED
5 (0x5)
Access is denied.
ERROR_INVALID_HANDLE
6 (0x6)
The handle is invalid.
ERROR_ARENA_TRASHED
7 (0x7)
The storage control blocks were destroyed.
ERROR_NOT_ENOUGH_MEMORY
8 (0x8)
Not enough storage is available to process this command.
ERROR_INVALID_BLOCK
9 (0x9)
The storage control block address is invalid.
ERROR_BAD_ENVIRONMENT
10 (0xA)
The environment is incorrect.
ERROR_BAD_FORMAT
11 (0xB)
An attempt was made to load a program with an incorrect format.
ERROR_INVALID_ACCESS
12 (0xC)
The access code is invalid.
ERROR_INVALID_DATA
13 (0xD)
The data is invalid.
ERROR_OUTOFMEMORY
14 (0xE)
Not enough storage is available to complete this operation.
ERROR_INVALID_DRIVE
15 (0xF)
The system cannot find the drive specified.
ERROR_CURRENT_DIRECTORY
16 (0x10)
The directory cannot be removed.
ERROR_NOT_SAME_DEVICE
17 (0x11)
The system cannot move the file to a different disk drive.
ERROR_NO_MORE_FILES
18 (0x12)
There are no more files.
ERROR_WRITE_PROTECT
19 (0x13)
The media is write protected.
ERROR_BAD_UNIT
20 (0x14)
The system cannot find the device specified.
ERROR_NOT_READY
21 (0x15)
The device is not ready.
ERROR_BAD_COMMAND
22 (0x16)
The device does not recognize the command.
ERROR_CRC
23 (0x17)
Data error (cyclic redundancy check).
ERROR_BAD_LENGTH
24 (0x18)
The program issued a command but the command length is incorrect.
ERROR_SEEK
25 (0x19)
The drive cannot locate a specific area or track on the disk.
ERROR_NOT_DOS_DISK
26 (0x1A)
The specified disk or diskette cannot be accessed.
ERROR_SECTOR_NOT_FOUND
27 (0x1B)
The drive cannot find the sector requested.
ERROR_OUT_OF_PAPER
28 (0x1C)
The printer is out of paper.
ERROR_WRITE_FAULT
29 (0x1D)
The system cannot write to the specified device.
ERROR_READ_FAULT
30 (0x1E)
The system cannot read from the specified device.
ERROR_GEN_FAILURE
31 (0x1F)
A device attached to the system is not functioning.
ERROR_SHARING_VIOLATION
32 (0x20)
The process cannot access the file because it is being used by another process.
ERROR_LOCK_VIOLATION
33 (0x21)
The process cannot access the file because another process has locked a portion of the file.
ERROR_WRONG_DISK
34 (0x22)
The wrong diskette is in the drive. Insert %2 (Volume Serial Number: %3) into drive %1.
ERROR_SHARING_BUFFER_EXCEEDED
36 (0x24)
Too many files opened for sharing.
ERROR_HANDLE_EOF
38 (0x26)
Reached the end of the file.
ERROR_HANDLE_DISK_FULL
39 (0x27)
The disk is full.
ERROR_NOT_SUPPORTED
50 (0x32)
The request is not supported.
ERROR_REM_NOT_LIST
51 (0x33)
Windows cannot find the network path. Verify that the network path is correct and the destination computer is not busy or turned off. If Windows still cannot find the network path, contact your network administrator.
ERROR_DUP_NAME
52 (0x34)
You were not connected because a duplicate name exists on the network. If joining a domain, go to System in Control Panel to change the computer name and try again. If joining a workgroup, choose another workgroup name.
ERROR_BAD_NETPATH
53 (0x35)
The network path was not found.
ERROR_NETWORK_BUSY
54 (0x36)
The network is busy.
ERROR_DEV_NOT_EXIST
55 (0x37)
The specified network resource or device is no longer available.
ERROR_TOO_MANY_CMDS
56 (0x38)
The network BIOS command limit has been reached.
ERROR_ADAP_HDW_ERR
57 (0x39)
A network adapter hardware error occurred.
ERROR_BAD_NET_RESP
58 (0x3A)
The specified server cannot perform the requested operation.
ERROR_UNEXP_NET_ERR
59 (0x3B)
An unexpected network error occurred.
ERROR_BAD_REM_ADAP
60 (0x3C)
The remote adapter is not compatible.
ERROR_PRINTQ_FULL
61 (0x3D)
The printer queue is full.
ERROR_NO_SPOOL_SPACE
62 (0x3E)
Space to store the file waiting to be printed is not available on the server.
ERROR_PRINT_CANCELLED
63 (0x3F)
Your file waiting to be printed was deleted.
ERROR_NETNAME_DELETED
64 (0x40)
The specified network name is no longer available.
ERROR_NETWORK_ACCESS_DENIED
65 (0x41)
Network access is denied.
ERROR_BAD_DEV_TYPE
66 (0x42)
The network resource type is not correct.
ERROR_BAD_NET_NAME
67 (0x43)
The network name cannot be found.
ERROR_TOO_MANY_NAMES
68 (0x44)
The name limit for the local computer network adapter card was exceeded.
ERROR_TOO_MANY_SESS
69 (0x45)
The network BIOS session limit was exceeded.
ERROR_SHARING_PAUSED
70 (0x46)
The remote server has been paused or is in the process of being started.
ERROR_REQ_NOT_ACCEP
71 (0x47)
No more connections can be made to this remote computer at this time because there are already as many connections as the computer can accept.
ERROR_REDIR_PAUSED
72 (0x48)
The specified printer or disk device has been paused.
ERROR_FILE_EXISTS
80 (0x50)
The file exists.
ERROR_CANNOT_MAKE
82 (0x52)
The directory or file cannot be created.
ERROR_FAIL_I24
83 (0x53)
Fail on INT 24.
ERROR_OUT_OF_STRUCTURES
84 (0x54)
Storage to process this request is not available.
ERROR_ALREADY_ASSIGNED
85 (0x55)
The local device name is already in use.
ERROR_INVALID_PASSWORD
86 (0x56)
The specified network password is not correct.
ERROR_INVALID_PARAMETER
87 (0x57)
The parameter is incorrect.
ERROR_NET_WRITE_FAULT
88 (0x58)
A write fault occurred on the network.
ERROR_NO_PROC_SLOTS
89 (0x59)
The system cannot start another process at this time.
ERROR_TOO_MANY_SEMAPHORES
100 (0x64)
Cannot create another system semaphore.

Linux操作系统

Linux Error Code的定义文件是:/usr/include/asm/errno.h。以笔者使用的Centos 6.6为例,该头文件内容是#include <asm-generic/errno.h>,对应的真实路径是:/usr/include/asm-generic/errno.h。 以下是Linux 0-100错误码对应的定义:

#define EDEADLK         35      /* Resource deadlock would occur */
#define ENAMETOOLONG    36      /* File name too long */
#define ENOLCK          37      /* No record locks available */
#define ENOSYS          38      /* Function not implemented */
#define ENOTEMPTY       39      /* Directory not empty */
#define ELOOP           40      /* Too many symbolic links encountered */
#define EWOULDBLOCK     EAGAIN  /* Operation would block */
#define ENOMSG          42      /* No message of desired type */
#define EIDRM           43      /* Identifier removed */
#define ECHRNG          44      /* Channel number out of range */
#define EL2NSYNC        45      /* Level 2 not synchronized */
#define EL3HLT          46      /* Level 3 halted */
#define EL3RST          47      /* Level 3 reset */
#define ELNRNG          48      /* Link number out of range */
#define EUNATCH         49      /* Protocol driver not attached */
#define ENOCSI          50      /* No CSI structure available */
#define EL2HLT          51      /* Level 2 halted */
#define EBADE           52      /* Invalid exchange */
#define EBADR           53      /* Invalid request descriptor */
#define EXFULL          54      /* Exchange full */
#define ENOANO          55      /* No anode */
#define EBADRQC         56      /* Invalid request code */
#define EBADSLT         57      /* Invalid slot */

#define EDEADLOCK       EDEADLK

#define EBFONT          59      /* Bad font file format */
#define ENOSTR          60      /* Device not a stream */
#define ENODATA         61      /* No data available */
#define ETIME           62      /* Timer expired */
#define ENOSR           63      /* Out of streams resources */
#define ENONET          64      /* Machine is not on the network */
#define ENOPKG          65      /* Package not installed */
#define EREMOTE         66      /* Object is remote */
#define ENOLINK         67      /* Link has been severed */
#define EADV            68      /* Advertise error */
#define ESRMNT          69      /* Srmount error */
#define ECOMM           70      /* Communication error on send */
#define EPROTO          71      /* Protocol error */
#define EMULTIHOP       72      /* Multihop attempted */
#define EDOTDOT         73      /* RFS specific error */
#define EBADMSG         74      /* Not a data message */
#define EOVERFLOW       75      /* Value too large for defined data type */
#define ENOTUNIQ        76      /* Name not unique on network */
#define EBADFD          77      /* File descriptor in bad state */
#define EREMCHG         78      /* Remote address changed */
#define ELIBACC         79      /* Can not access a needed shared library */
#define ELIBBAD         80      /* Accessing a corrupted shared library */
#define ELIBSCN         81      /* .lib section in a.out corrupted */
#define ELIBMAX         82      /* Attempting to link in too many shared libraries */
#define ELIBEXEC        83      /* Cannot exec a shared library directly */
#define EILSEQ          84      /* Illegal byte sequence */
#define ERESTART        85      /* Interrupted system call should be restarted */
#define ESTRPIPE        86      /* Streams pipe error */
#define EUSERS          87      /* Too many users */
#define ENOTSOCK        88      /* Socket operation on non-socket */
#define EDESTADDRREQ    89      /* Destination address required */
#define EMSGSIZE        90      /* Message too long */

参考

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值