《
gnu/linux
程式設計指南》一書中對出錯處理部分寫的不錯。
常用的內容如下:
l中支援
assert()
函式,注意,
assert()
檢查發現條件不成立時呼叫
abort()
終止程式執行,應用程式沒有機會做清除工作。lc
標準定義了
__line__
和__file__
巨集,gnu c
擴充套件中定義了
__function__巨集。l
中定義了
errno
,注意沒有函式會將
errno
清零,所以在呼叫可能設定
errno
的函式之前先將
errno
清零。l
中定義了
abort()
、exit()
和atexit()
函式。l
函式abort()
將導致程式異常終止,在終止前程式沒有機會執行
atexit()
登記的函式,也沒有計畫執行一些常規的清除工作。同時,
abort()
還會產生
core dump
,如果沒有
ulimit
限制的話。l函式
exit()
和abort()
類似,但它在完成清理工作之後才終止程式。l函式
atexit()
登記在程式正常終止時要呼叫的函式。
l中定義了
perror()
,中定義了
strerror()。l
中定義了
syslogd
的介面。
UNIX 環境高階程式設計之出錯處理
在 unix 系統中,系統呼叫出錯通常會設定變數 errno 的值,以指示出錯的具體型別,一般為負值,這些值通常對應乙個描述性資訊,可以通過 strerror errno 獲取或者通過 perror 將錯誤資訊輸出到標準錯誤。在支援執行緒的系統環境中,同一程序的不同執行緒有各自的 errno,因此不...
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函式...