errno
儲存上次 system call 的錯誤碼
函式原型
說明
這個變數用來儲存 system call 的錯誤資訊,比如像:socket() 與 listen() 錯誤時會傳回 -1,並設定 errno 的值,讓你可以知道發生了什麼樣的錯誤。
標頭檔 errno.h 列出了許多錯誤的常數符號,比如:EADDRINUSE、EPIPE、ECONNREFUSED 等。你本機上的 man 手冊會告訴你錯誤時所傳回的錯誤碼有哪些,而你可以在執行期時利用這些錯誤碼來分別處理不同的錯誤。
或者,更普遍的是,你可以呼叫 perror() 或 strerror() 取得人們方便閱讀的錯誤訊息。
對於喜歡用多執行緒(multithreading)的人,有件事需要注意:就是多數系統上的 errno 會定義為 threadsafe 的方式。(也就是說,它並不是一個全域變數,但是在單執行緒的環境中,它的行為跟全域變數一樣)。
傳回值
變數值記錄最新的錯誤,如果上次的動作是成功的,這個值就會是 "success"。
範例
參考
perror(), strerror()
Last updated