如何在 Linux 中瞭解“errno”的含義?


Errno 是一個值,當您執行的命令返回呼叫值表示錯誤時,您會得到該值。有一個頭檔案定義了整數變數 errno,它由系統呼叫和一些庫函式在發生錯誤時設定,以讓開發人員知道出了什麼問題。

簡單來說,“errno”是作業系統錯誤的症狀。通常由作業系統呼叫失敗產生。

在 UNIX 中,errno 以大寫字母定義。

示例

EPERM
ENOENT
ESRCH
EINTR
EIO
ENXIO

在上面的示例中,提到了一些格式化的 errno,它們具有不同的值和含義。

雖然 ‘errno’ 存在於大多數基於 Linux 的系統上,但您仍然可以藉助下面顯示的命令下載該工具。

對於 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

更新於: 2021-07-30

1K+ 閱讀量

啟動您的 職業生涯

透過完成課程獲得認證

開始學習
廣告