C標準庫之三 errno h

2021-08-06 01:29:22 字數 709 閱讀 9611

errno.h是c標準庫中的乙個檢查錯誤的標頭檔案,以我個人的理解,它的內部一共定義了3個巨集,分別是edom,erange,errno.其中errno相當於乙個全域性變數,它可以被賦值,而c庫中的每個模組都會包含這個errno.h標頭檔案,那麼errno這個可以被賦值的巨集(不知道這樣理解對不對,看了c標準庫才做的理解),就相當於整個c標準庫的全域性變數,如果在使用某個模組的函式過程中發生了錯誤,這個errno巨集就會在函式內部被賦予乙個有含義的值,相當於乙個錯誤**,並且無論庫的哪個模組或庫函式都不會把errno設定為零。所以我們在使用這個模組的時候,只需要在乙個庫函式呼叫前將errno設定為零,然後在呼叫之後檢查errno的值即可知道這個被呼叫的庫函式有沒有發生錯誤。
序號巨集解釋

1edom

特定含義的錯誤,在math.h 中表示域錯誤

2erange

特定含義的錯誤,在math.h 中表示溢位錯誤

3errno

庫函式中用來盛放錯誤**的巨集

這幾個巨集的用法已經在概述中說了,就是在使用庫函式時候,在使用之前把errno置為零,然後在使用之後就去檢測,其返回值,是不是被庫函式賦予了錯誤**,當然我們既然包含了errno.h這個標頭檔案當然就可以定義自己的錯誤**,也就是我們自己定義的函式內部也可以給errno賦值,然後在使用的時候去判斷,前提是錯誤**我們需要自己定義,每乙個有固定的含義,這樣就很方便了。

C 標準庫系列之errno h

errno.h 提供了乙個整數全域性變數errno,當系統呼叫或者庫函式的錯誤事件發生時可能會修改該值,指明錯誤的原因,該值可在任何需要的地方被修改 一般情況不為0的值表示出現了異常或者錯誤。errno.h中定義了一系列的錯誤 以e開頭的巨集。glibc中extern int errno來宣告定義該...

C 標準模板庫分析之三

一 關聯容器 分為 集合 set 多重集合 multiset 對映 map 多重對映 multimap 集合和多重集合提供了數值集合的操作,標頭檔案 對映和多重對映提供了與關鍵字相關聯的對映值,標頭檔案 二 對映 map 操作 1 定義及賦值 map的元素是由key和value兩個分量組成的對偶 k...

C 標準庫 已序演算法之三合併元素

合併元素 兩個已序集合的總和 merge source1beg,source1end,source2beg,source2end,destbeg merge source1beg,source1end,source2beg,source2end,destbeg,op 1 兩者都將源區間 source...