• <li id="00i08"><input id="00i08"></input></li>
  • <sup id="00i08"><tbody id="00i08"></tbody></sup>
    <abbr id="00i08"></abbr>
  • 博客專欄

    EEPW首頁 > 博客 > linux c 打印錯誤信息error errno perror和strerror的區別

    linux c 打印錯誤信息error errno perror和strerror的區別

    發布人:電子禪石 時間:2024-09-10 來源:工程師 發布文章

    1 perror 
    頭文件:stdio.h 
    void perror(const char *msg); 
    它是基于errno的當前值,在標準錯上產生一條出錯信息,然后返回。 
    它先輸出由msg字符串,然后是一個冒號后頭接著對應于errno值的出錯信息。 
    例: perror("sendto");
    打印出:sendto: Permission denied 


    2 strerror 
    頭文件:string.h 
    char * strerror(int errnum); 
    此函數將errnum(它通常就說errno值)映射為一個出錯信息字符串,并返回錯誤此字符串 
    我們看errno的值: 
    在頭文件: include errno.h 
    例: 
    printf("errno is: %d\n", errno);
    printf("errno is: %s\n", strerror(errno));
    結果:errno is 13 
       Permission denied 


    3 perror和strerror區別和聯系 
    可以看出: 
    perror和strerror都是根據errno的值打印錯誤信息的。 
    perror是將errno對應的錯誤消息的字符串打印到標準錯誤輸出上,即stderr或2上,若你的程序將標準錯誤輸出重定向到/dev/null,那就看不到了,就不能用perror了。 
    而 strerror的作用只是將errno對應的錯誤消息字符串返回.你可以自己決定咋樣處理字符串,比如可以存到日志,也可以直接printf出來。


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



    關鍵詞: errno

    技術專區

    關閉
    主站蜘蛛池模板: 和顺县| 集安市| 大城县| 永寿县| 长宁县| 无为县| 南丹县| 营口市| 武宁县| 大英县| 从化市| 贡山| 无极县| 贞丰县| 阳朔县| 巴里| 永平县| 财经| 建水县| 山西省| 开平市| 克拉玛依市| 大连市| 佛冈县| 剑阁县| 沙湾县| 上饶市| 牡丹江市| 平原县| 廊坊市| 拉萨市| 达孜县| 镇赉县| 仁布县| 柳林县| 西畴县| 工布江达县| 鹤峰县| 保靖县| 阜康市| 凯里市|