Linux 错误代码2025年03月17日 | 阅读 9 分钟 Linux 错误代码是在使用或操作系统时显示的错误代码。可以通过错误代码来识别错误。错误代码有助于我们识别错误的根源。 如果您在使用 Linux 系统,遇到错误是正常的。有些错误可能很小,不会导致程序中断。但也有些错误可能导致系统或程序停止响应。这些错误可能导致数据丢失,或阻止程序完成。大多数错误以代码或消息的形式显示。 在本节中,我们将看到 C 编程中的错误以及 Linux 系统中可能出现的错误列表。 C 编程中的 Linux 错误熟练的程序员应该知道如何处理错误。C 编程语言不直接支持错误处理。我们需要检测错误的根源并加以处理。在 C 语言中,返回值表示失败或成功。如果 C 程序中的函数失败,我们必须相应地处理错误;否则,它会将错误记录在日志文件中。 在执行 C 程序时,我们可能会注意到一些错误编号,例如“错误编号是:17”。这里,错误编号 17 表示文件已存在。每个错误编号都有其含义。 C 语言支持一个名为 'errorno' 的变量。通过使用这个错误编号变量,我们可以使用一些错误处理函数来妥善处理它。 要使用外部变量错误编号,我们需要包含一个头文件 'errno.h'。<error.h> 头文件用于定义 'errno' 变量。在发生错误时,系统调用和库函数会设置 errno 变量。C 编程语言中有两个重要的函数用于处理错误:perror 和 strerror。perror 函数用于打印错误描述,strerror 函数返回一个包含错误代码的字符串。 让我们使用 errno 显示错误代码列表。 Linux errnoerrno 工具用于查找 errno 代码、宏名称以及相应的描述。例如,如果在 Linux 系统上提供 ENOENT,它将显示代码 2 和描述 “文件或目录不存在。” 如果提供代码 2,它将显示 ENOENT 及其描述。 如果我们的机器上没有安装 errno 工具,它将显示如下错误  要安装它,请执行以下命令 通过执行上述命令,moreutils 包已安装在我们的机器上,其中包含 errno 工具。  显示错误代码列表要显示错误代码列表,请执行以下命令 上述命令将显示 RedHat 的错误代码列表。请参考以下输出  显示错误编号的信息要显示特定错误编号的信息,请执行以下命令 上述命令将显示错误编号 2 的描述。请参考以下输出  显示错误名称的信息要显示特定错误名称的信息,请执行 errno 命令,然后是错误名称。例如,要显示错误名称 'ESRCH' 的信息,请执行以下命令 上述命令将显示有关指定错误名称的信息。请参考以下输出  使用字符串显示错误要使用描述中的字符串显示错误描述,请执行以下命令 上述命令将显示描述包含“permission”的错误。请参考以下输出  Linux 系统错误列表以下是 Linux 系统可能出现的错误的部分列表 错误代码 | 错误编号 | 描述 |
---|
EPERM | 1 | 如果操作不允许,则显示此错误。 | ENOENT | 2 | 如果文件或目录不存在,则显示此错误。 | ESRCH | 3 | 如果没有找到指定进程,则显示此错误。 | EINTR | 4 | 显示“中断的系统调用” | EIO | 5 | 显示“输入/输出错误。” | ENXIO | 6 | 如果没有找到指定设备或地址,则显示此错误。 | E2BIG | 7 | 如果参数列表太长,则显示此错误。 | ENOEXEC | 8 | 如果存在执行格式错误,则显示此错误 | EBADF | 9 | 在文件描述符错误时显示。 | ECHILD | 10 | 如果没有找到子进程,则显示此错误。 | EAGAIN | 11 | 如果资源暂时不可用,则显示此错误。 | ENOMEM | 12 | 如果系统无法分配内存,则显示此错误。 | EACCES | 13 | 如果权限被拒绝,则显示此错误。 | EFAULT | 14 | 如果地址无效,则显示此错误。 | ENOTBLK | 15 | 如果需要块设备,则显示此错误。 | EBUSY | 16 | 如果设备或资源被占用,则显示此错误。 | EEXIST | 17 | 如果文件已存在,则显示此错误。 | EXDEV | 18 | 如果存在无效的跨设备链接,则显示此错误。 | ENODEV | 19 | 如果没有找到指定设备,则显示此错误。 | ENOTDIR | 20 | 如果不是目录,则显示此错误。 | EISDIR | 21 | 如果是目录,则显示此错误。 | EINVAL | 22 | 如果参数无效,则显示此错误。 | ENFILE | 23 | 如果系统中打开的文件过多,则显示此错误。 | EMFILE | 24 | 如果打开的文件过多,则显示此错误。 | ENOTTY | 25 | 如果设备不适用的 ioctl,则显示此错误。 | ETXTBSY | 26 | 如果文本文件被占用,则显示此错误。 | EFBIG | 27 | 如果文件太大,则显示此错误。 | ENOSPC | 28 | 如果设备上没有剩余空间,则显示此错误。 | ESPIPE | 29 | 在非法 seek 时显示。 | EROFS | 30 | 在只读文件系统时显示。 | EMLINK | 31 | 如果链接过多,则显示此错误。 | EPIPE | 32 | 在管道破裂时显示。 | EDOM | 33 | 如果数值参数超出定义域,则显示此错误。 | ERANGE | 34 | 如果数值结果超出范围,则显示此错误。 | EDEADLK | 35 | 如果避免了资源死锁,则显示此错误。 | ENAMETOOLONG | 36 | 如果文件名太长,则显示此错误。 | ENOLCK | 37 | 如果无法获得锁,则显示此错误。 | ENOSYS | 38 | 如果函数未实现,则显示此错误。 | ENOTEMPTY | 39 | 如果目录非空,则显示此错误。 | ELOOP | 40 | 如果符号链接的层级过多,则显示此错误。 | ENOMSG | 42 | 如果不存在所需类型的消息,则显示此错误。 | EIDRM | 43 | 如果标识符已被移除,则显示此错误。 | ECHRNG | 44 | 如果通道号超出范围,则显示此错误。 | EL2NSYNC | 45 | 如果级别 2 未同步,则显示此错误。 | EL3HLT | 46 | 如果级别 3 已停止,则显示此错误。 | EL3RST | 47 | 如果级别 3 已重置,则显示此错误。 | ELNRNG | 48 | 如果链接号超出范围,则显示此错误。 | EUNATCH | 49 | 如果协议驱动程序未附加,则显示此错误。 | ENOCSI | 50 | 如果不存在 CSI 结构,则显示此错误。 | EL2HLT | 51 | 如果级别 2 已停止,则显示此错误。 | EBADE | 52 | 在交换无效时显示。 | EBADR | 53 | 在请求描述符无效时显示。 | EXFULL | 54 | 如果交换已满,则显示此错误。 | ENOANO | 55 | 在“无节点”时显示。 | EBADRQC | 56 | 显示无效的请求代码。 | EBADSLT | 57 | 显示无效的插槽。 | EBFONT | 59 | 如果字体文件格式错误,则显示此错误。 | ENOSTR | 60 | 如果设备不是流,则显示此错误。 | ENODATA | 61 | 如果没有可用数据,则显示此错误。 | ETIME | 62 | 在计时器过期时显示。 | ENOSR | 63 | 在流资源不足时显示。 | ENONET | 64 | 如果机器未连接到网络,则显示此错误。 | ENOPKG | 65 | 如果软件包未安装,则显示此错误。 | EREMOTE | 66 | 如果对象是远程的,则显示此错误。 | ENOLINK | 67 | 如果链路已断开,则显示此错误。 | EADV | 68 | 显示广告错误。 | ESRMNT | 69 | 显示 Srmount 错误。 | ECOMM | 70 | 如果在发送通信时发生错误,则显示此错误。 | EPROTO | 71 | 显示协议错误。 | EMULTIHOP | 72 | 显示尝试了多跳。 | EDOTDOT | 73 | 显示 RFS 特定的错误。 | EBADMSG | 74 | 显示“消息无效。” | EOVERFLOW | 75 | 如果值对于定义的数据类型来说太大,则显示此错误。 | ENOTUNIQ | 76 | 如果网络名称不唯一,则显示此错误。 | EBADFD | 77 | 如果文件描述符处于不良状态,则显示此错误。 | EREMCHG | 78 | 如果远程地址已更改,则显示此错误。 | ELIBACC | 79 | 如果我们无法访问所需的共享库,则显示此错误。 | ELIBBAD | 80 | 在访问损坏的共享库时显示。 | ELIBSCN | 81 | 如果在 a.out 中存在 .lib 段损坏,则显示此错误。 | ELIBMAX | 82 | 如果我们尝试链接过多的共享库,则显示此错误。 | ELIBEXEC | 83 | 如果我们无法直接执行共享库,则显示此错误。 | EILSEQ | 84 | 显示无效或不完整的多字节字符或宽字符 | ERESTART | 85 | 显示通知中断的系统调用应重新启动。 | ESTRPIPE | 86 | 显示流管道错误。 | EUSERS | 87 | 显示用户过多。 | ENOTSOCK | 88 | 在非套接字上执行套接字操作时显示。 | EDESTADDRREQ | 89 | 如果需要目标地址,则显示此错误。 | EMSGSIZE | 90 | 如果消息太长,则显示此错误。 | EPROTOTYPE | 91 | 如果套接字的协议类型错误,则显示此错误。 | ENOPROTOOPT | 92 | 如果协议不可用,则显示此错误。 | EPROTONOSUPPORT | 93 | 如果协议不受支持,则显示此错误。 | ESOCKTNOSUPPORT | 94 | 如果套接字类型不受支持,则显示此错误。 | EOPNOTSUPP | 95 | 如果操作不受支持,则显示此错误。 | EPFNOSUPPORT | 96 | 如果协议族不受支持,则显示此错误。 | EAFNOSUPPORT | 97 | 如果协议不支持地址族,则显示此错误。 | EADDRINUSE | 98 | 如果地址已在使用中,则显示此错误。 | EADDRNOTAVAIL | 99 | 如果系统无法分配请求的地址,则显示此错误。 | ENETDOWN | 100 | 如果网络已断开,则显示此错误。 | ENETUNREACH | 101 | 如果网络无法访问,则显示此错误。 | ENETRESET | 102 | 如果在重置时网络中断了连接,则显示此错误。 | ECONNABORTED | 103 | 如果软件导致连接中止,则显示此错误。 | ECONNRESET | 104 | 如果连接被对端重置,则显示此错误。 | ENOBUFS | 105 | 如果没有可用的缓冲区空间,则显示此错误。 | EISCONN | 106 | 如果传输端点已连接,则显示此错误。 | ENOTCONN | 107 | 如果传输端点未连接,则显示此错误。 | ESHUTDOWN | 108 | 如果在传输端点关闭后系统无法发送,则显示此错误。 | ETOOMANYREFS | 109 | 如果引用过多:无法拼接。 | ETIMEDOUT | 110 | 如果连接超时,则显示此错误。 | ECONNREFUSED | 111 | 如果连接被拒绝,则显示此错误。 | EHOSTDOWN | 112 | 如果主机已断开,则显示此错误。 | EHOSTUNREACH | 113 | 如果没有到主机的路由,则显示此错误。 | EALREADY | 114 | 如果操作已在进行中,则显示此错误。 | EINPROGRESS | 115 | 如果操作现在正在进行中,则显示此错误。 | ESTALE | 116 | 显示“过时的文件句柄”。 | EUCLEAN | 117 | 如果结构需要清理,则显示此错误。 | ENOTNAM | 118 | 显示“不是 XENIX 命名类型文件”。 | ENAVAIL | 119 | 如果 XENIX 信号量不可用,则显示此错误。 | EISNAM | 120 | 如果存在命名类型文件,则显示此错误。 | EREMOTEIO | 121 | 显示远程 I/O 错误。 | EDQUOT | 122 | 如果超出磁盘配额,则显示此错误。 | ENOMEDIUM | 123 | 如果没有找到介质,则显示此错误。 | EMEDIUMTYPE | 124 | 如果介质类型错误,则显示此错误。 | ECANCELED | 125 | 如果操作被取消,则显示此错误。 | ENOKEY | 126 | 如果所需密钥不可用,则显示此错误。 | EKEYEXPIRED | 127 | 如果密钥已过期,则显示此错误。 | EKEYREVOKED | 128 | 如果密钥已被吊销,则显示此错误。 | EKEYREJECTED | 129 | 如果密钥被服务拒绝,则显示此错误。 | EOWNERDEAD | 130 | 如果所有者已死亡,则显示此错误。 | ENOTRECOVERABLE | 131 | 显示“无法恢复状态”。 | ERFKILL | 132 | 如果由于 RF-kill 操作无法执行,则显示此错误。 | EHWPOISON | 133 | 如果内存页出现硬件错误,则显示此错误。 |
|