庫函式perror和strerror的使用

2021-07-05 13:26:31 字數 737 閱讀 4952

在linux c程式設計中,我們經常需要呼叫庫函式,常見的比如open/read/write等等。而幾乎每個庫函式都會返回某類狀態值,用來表明呼叫正確與否。而對返回值進行檢查,是很有必要的,對於我們的系統除錯,是有很多幫助的。

當系統呼叫失敗時,常用的乙個方法是使用庫函式perror()strerror(),來列印出錯誤語句。

perror和strerror都是c語言提供的庫函式,二者的功能都是用於獲取相關的庫函式呼叫錯誤資訊。區別在於,perror函式向stderr輸出結果,而 strerror函式向stdout輸出結果。

以下是一段簡單的測試**,可以看到二者的使用方法,還有輸出結果:

#include #include #include int main()

return 0;

}

編譯,執行這個程式,結果如下:

可以看到,兩個庫函式的使用方式不同,但是列印出來的結果是相同的。"testfile「是手寫的輸出提示訊息,「no such file or directory」是返回的錯誤訊息。

在實際的工作中,我們可以寫一些我們自己指定的,有特殊意義的字串,並且把輸出結果重定義到乙個log檔案裡,這樣可以根據手寫的特殊字元,比較方便的查詢庫函式是否呼叫錯誤,還有錯誤原因。

perror 函式用法

include void perror const char str 函式說明 perror 用 來 將 上 一 個 函 數 發 生 錯 誤 的 原 因 輸 出 到 標 準 錯誤 stderr 引數 str 所指的字串會先列印出,後面再加上錯誤原因字串。此錯誤原因依照全域性變數errno 的值來決定...

perror函式的用法

出處來自 c 庫函式 perror c 標準庫 c 標準庫 描述 c 庫函式 void perror const char str 把乙個描述性錯誤訊息輸出到標準錯誤 stderr。首先輸出字串 str,後跟乙個冒號,然後是乙個空格。宣告 下面是 perror 函式的宣告。void perror c...

qsort庫函式和函式指標

這個函式對陣列排序時需要知道 陣列起始的位址 陣列元素的個數 每個元素的大小 元素的排序規則 中每個單詞的含義 base 待排序陣列位址的起始位址 nelem 待排序陣列的元素個數 width 每個元素的大小 pfcompare 比較函式的位址 該比較函式需自己編寫規則 ps pf函式形式 int ...