perror的函式原型為`void perror(const char *s)`
這個函式會先輸出你傳給他的實參 s 所指的字串,後面再加上錯誤原因字串。此錯誤原因依照全域性變數errno 的值來決定要輸出的字串。
在庫函式中有個errno變數,每個errno值對應著以字串表示的錯誤型別。當你呼叫"某些"函式出錯時,該函式已經重新設定了errno的值。perror函式只是將你輸入的一些資訊和現在的errno所對應的錯誤一起輸出。只有當乙個庫函式失敗時,errno才會被設定。當函式成功執行時,errno的值不會被修改。這意味著我們不能通過測試errno的值來判斷是否有錯誤存在。反之,只有當被呼叫的函式提示有錯誤發生時檢查errno的值才有意義。檢視錯誤**errno是除錯程式的乙個重要方法。當linux c api函式發生異常時,一般會將errno變數(需include errno.h)賦乙個整數值,不同的值表示不同的含義,可以通過檢視該值推測出錯的原因。在實際程式設計中用這一招解決了不少原本看來莫名其妙的問題。
例:`#include
#include
int main()
char *p="abcd";
file *fp;
fp=fopen("asfaasf.txt","r");
if(fp==null)
perror(p);
exit(1);
return 0; } `
那麼,他的輸出結果就會是`abcd: no such file or directory`
linux下 C語言perror函式的作用
標頭檔案 include include 注意不可以掉了這個標頭檔案,perror是包含在這個檔案裡的 編輯本段perror表頭檔案完善版定義函式 void perror const char s perror open port 函式說明 perror 用 來 將 上 一 個 函 數 發 生 錯 ...
linux下 C語言perror函式的作用
標頭檔案 include 注意不可以掉了這個標頭檔案,perror是包含在這個檔案裡的 編輯本段perror表頭檔案完善版定義函式 void perror const char s perror open port 函式說明 perror 用 來 將 上 一 個 函 數 發 生 錯 誤 的 原 因 ...
2017 1 4linux下的C語言 函式
5.1.1什麼是函式 函式就是把乙個程式功能封裝成乙個整體。包括 型別名 函式名 引數列表 函式體。型別名 函式名 引數列表 函式體 返回值的資料型別就是函式的資料型別。沒有返回值,則為void。在函式體內可以呼叫其他的函式。5.1.2 系統函式 庫函式 與使用者自定義的函式 按照函式的 函式可以分...