博客專欄

        EEPW首頁 > 博客 > 嵌入式Linux:strerror函數和perror函數

        嵌入式Linux:strerror函數和perror函數

        發布人:美男子玩編程 時間:2024-06-21 來源:工程師 發布文章

        strerror函數和perror函數是C標準庫中的兩個函數,用于處理和顯示錯誤信息。它們幫助程序員在程序運行過程中了解并診斷錯誤原因。


        strerror函數,返回錯誤消息字符串,需要程序員自己調用printf等函數來打印錯誤消息。更加靈活,可以組合其他字符串一起使用。


        perror函數,直接打印錯誤消息,適合簡單的錯誤報告。不需要額外的printf調用。



        1


        strerror函數


        strerror函數將錯誤代碼轉換為相應的錯誤消息字符串。其原型為:




        char *strerror(int errnum);



        參數:


        • errnum:錯誤代碼,通常是全局變量errno的值。


        返回值:


        • 返回指向描述錯誤的字符串的指針。



        在以下示例中,嘗試打開一個不存在的文件會導致fopen失敗,errno被設置為相應的錯誤代碼。strerror(errno)將該錯誤代碼轉換為一個描述錯誤的字符串并打印出來。














        #include#include#include
        int main() {    FILE *file = fopen("nonexistent.txt", "r");    if (file == NULL) {        printf("Error opening file: %sn", strerror(errno));    }    return 0;}

        2


        perror函數


        perror函數直接打印一條描述錯誤的消息,錯誤信息包括由errno指定的錯誤描述。其原型為:




        void perror(const char *s);



        參數:


        • s:一個用戶提供的前綴字符串,如果非空,則首先打印該字符串,然后打印一個冒號和空格,再打印錯誤消息。


        返回值:


        • 無返回值。



        在以下示例中,perror函數輸出的消息包括用戶提供的前綴字符串和錯誤描述。



        #include#include
        int main() {    FILE *file = fopen("nonexistent.txt", "r");    if (file == NULL) {        perror("Error opening file");    }    return 0;}


        例如,如果文件不存在,輸出可能是:


        Error opening file: No such file or directory



        *博客內容為網友個人發布,僅代表博主個人觀點,如有侵權請聯系工作人員刪除。



        關鍵詞: 嵌入式 Linux

        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 华池县| 汝州市| 慈利县| 清水县| 南丰县| 浮山县| 霞浦县| 介休市| 策勒县| 保山市| 绍兴市| 灵川县| 庆安县| 汨罗市| 石楼县| 滦南县| 鄂伦春自治旗| 龙山县| 禹城市| 淮安市| 监利县| 昌平区| 江油市| 吉木萨尔县| 望江县| 山西省| 贺州市| 广德县| 同仁县| 二连浩特市| 武川县| 湛江市| 同德县| 上高县| 独山县| 江都市| 淮滨县| 怀来县| 仙桃市| 东海县| 无锡市|