#include void perror(const char *msg);
1. errno變數
檔案 中定義了符號 errno 以及可以賦予它的各種常量,這些常量都是以字元 e 開頭。例如,若 errno 等於常量 eacces,表示產生了許可權問題(例如,沒有開啟所要求檔案的足夠許可權)。
errno特點:
1、當出錯的時候,errno會自動被賦值。乙個int資料
2、errno預設為0,表示沒有錯誤,當出錯時,errno被賦值(大於0),然後保持改值,直到下一次出錯,被修改為下一次錯誤的值。
errno直接列印是乙個數字,檢視不方便,可用函式轉換為字串。
函式1
#include char *strerror(int errnum);
此函式將 errno對映為乙個出錯資訊字串,並且返回此字串的指標。
函式2
#include void perror(const char *msg);
它首先輸出由 msg 指向的字串,然後是乙個冒號,乙個空格,接著是對應於 errno 值的出錯資訊,最後是乙個換行符。
2. errno_demo
int main(int argc,char* argv)
else
return 0;
}
輸出結果:
errno is 2
error: no such file or directory
open file:: no such file or directory
在支援執行緒的環境中,多個執行緒共享程序位址空間,每個執行緒都有屬於它自己的區域性 errno 以避免乙個執行緒干擾另乙個執行緒。
函式 strerror() 不是執行緒安全的。因為該函式將 errnum 對應的字串儲存在乙個靜態的緩衝區中,然後將該緩衝區的指標返回。另乙個執行緒呼叫 strerror() 就會重新設定靜態緩衝區的內容。
Linux 出錯處理errno
概述 公共標頭檔案定義了乙個整型值errno以及可以賦予它的各種常量。大部分函式出錯後返回 1,並且自動給errno賦予當前發生的錯誤列舉值。需要注意的一點是,errno只有在錯誤發生時才會被複寫,這就意味著如果按順序執行ab兩個函式,如果只有a函式出錯,則執行完ab函式後errno依然保留著a函式...
Unix環境程式設計 出錯處理 errno
當unix函式出錯時,通常會返回乙個負值,而且整型變數errno通常被設定為包含出錯資訊的乙個值。整型變數errno包含在標頭檔案中,該檔案中包含了errno的各種取值,這些取值通常以字母e開頭 例如 eaccess表示沒有訪問許可權 在以前的unix系統中通常將errno定義為 extern in...
APUE unix出錯處理
當unix函式出錯時 系統呼叫 常常會返回乙個負值,而且整型變數errno通常被設定為含有附加資訊的乙個值。檔案中定義了符合errno以及可以賦予它的各種常量,這些常量都以字元e開頭。另外,unix系統手冊第2部分的第1頁intro 2 列出了所有這些出錯常量。在linux中,出錯常量在errno ...