學習Linux之出錯處理

2021-06-01 00:08:55 字數 515 閱讀 7332

errno.h標頭檔案中,定義了errno:當api呼叫出錯時,errno說明出錯的具體原因

可簡單地將errno理解成整型資料

出錯資訊轉換成可讀字串

#includechar* strerror(int errno);
以前的定義:extern int errno; 不是執行緒安全的

多執行緒環境(/usr/include/bits/errno.h中41~49行):

extern int *__errno_location(); 

#define errno (*__errno_location())

在標頭檔案中,如果沒有定義"__assembler__" 且沒有定義"_libc" 或定義了"_libc_reentrant"

errno才能用於多執行緒

預設情況下,這些符號定義了嗎?

預設情況,這3個符號乙個都沒有定義

保險起見,可以定義_libc_reentrant

linux 出錯處理

當linux 系統出錯時候,常返回乙個負值記錄在變數errno中。對於errno的使用用兩條規則 1 如果沒有出錯,其值不會被清除 2 任一函式不會將errno置0 c標準有2個函式列印出錯日誌 include char strerror int errnum 此函式講errno 對映成乙個字串,返...

Linux 出錯處理errno

概述 公共標頭檔案定義了乙個整型值errno以及可以賦予它的各種常量。大部分函式出錯後返回 1,並且自動給errno賦予當前發生的錯誤列舉值。需要注意的一點是,errno只有在錯誤發生時才會被複寫,這就意味著如果按順序執行ab兩個函式,如果只有a函式出錯,則執行完ab函式後errno依然保留著a函式...

Linux程式設計之出錯處理

gnu linux 程式設計指南 一書中對出錯處理部分寫的不錯。常用的內容如下 l中支援 assert 函式,注意,assert 檢查發現條件不成立時呼叫 abort 終止程式執行,應用程式沒有機會做清除工作。lc 標準定義了 line 和 file 巨集,gnu c 擴充套件中定義了 functi...