【Linux系統程式設計】快速查詢errno錯誤碼資訊
我們都知道, errno
整型變數被普遍應用於*NIX C的異常處理中,其記錄了最近一次的錯誤碼。通過判斷錯誤碼的值,以此執行不同的錯誤處理,這是C語言典型的異常處理方式。其錯誤名稱,比如 EAGAIN
、 EWOULDBLOCK
等,都通過巨集定義,標頭檔案是 errno.h
;錯誤碼對應的描述,可以通過 strerror
輸出。
如果我們想知道錯誤名稱對應的錯誤碼的值,只需要簡單的 print("%d",EAGAIN);
就能知道;如果想知道錯誤碼的描述,呼叫 strerror
即可。但畢竟要寫程式,相對不方便,那有沒有現成的工具幫我們做到這些呢?
Linux
有一款 errno 命令列程式可以很方便的解決以上的問題,而且還能提供更豐富的功能。
安裝
在 Debian 可通過 apt-get install moreutils
安裝,這個軟體包裡包含很多的命令程式,有時間可以挖掘一下。
功能說明
errno程式選項很少,通過 man errno
一屏就可展開。
下面說主要功能:
- 通過錯誤名稱查錯誤碼和錯誤描述
$ errno EWOULDBLOCK EWOULDBLOCK 11 Resource temporarily unavailable
- 通過錯誤碼查錯誤名稱和錯誤描述
$ errno 11 EAGAIN 11 Resource temporarily unavailable
- 列舉所有
errno
變數所有錯誤情況
使用errno -l
或errno -ls
- 通過錯誤描述裡的關鍵字(大小寫不敏感)查對應的錯誤情況
$ errno -s support EPROTONOSUPPORT 93 Protocol not supported ESOCKTNOSUPPORT 94 Socket type not supported EOPNOTSUPP 95 Operation not supported EPFNOSUPPORT 96 Protocol family not supported EAFNOSUPPORT 97 Address family not supported by protocol ENOTSUP 95 Operation not supported
請關注我的公眾號哦。