如何知道 Linux 中的"errno"是什么意思?

linuxoperating systemopen source

errno 是一个值,当您运行的命令返回错误调用值时,您会得到这个值。有一个头文件定义了整型变量 errno,当系统调用和一些库函数发生错误时,会设置该变量,以便让开发人员知道哪里出了问题。

简单来说,"errno"是操作系统错误的症状。通常由失败的操作系统调用产生。

在 UNIX 系统中,errno 用大写字母表示。

示例

EPERM
ENOENT
ESRCH
EINTR
EIO
ENXIO

以上示例中提到了一些格式化的 errno 符号,它们具有不同的值和含义。

虽然大多数基于 Linux 的系统都预装了 errno 工具,但您仍然可以借助以下命令下载该工具。

适用于 Ubuntu/Fedora


sudo apt-get install errno

适用于 CentOS


yum install errno

安装 errno 工具后,我们可以使用以下命令列出所有 errno 符号及其含义。

errno -l

输出

1 EPERM Operation not permitted
2 ENOENT No such file or directory
3 ESRCH No such process
4 EINTR Interrupted system call
5 EIO Input/output error
6 ENXIO No such device or address
7 E2BIG Argument list too long
8 ENOEXEC Exec format error
9 EBADF Bad file descriptor
10 ECHILD No child processes

需要注意的是,上述输出中包含超过 130 条记录,我仅列出了前 10 条。

如我们所见,每个 errno 都附带了描述信息。借助上述输出,我们可以轻松确定 errno 的实际含义。

另一种更简单的方法是直接打印编号的 errno,而不是打印整个表格。

命令

errno 2

输出

No such file or directory

相关文章


有用资源