出錯處理完美搭配之perror exit

2021-09-06 13:16:33 字數 690 閱讀 8291

perror函式只是將errno代表的特定的錯誤報告給使用者,它的原型在stdio.h中定義如下:

void perror( char

const *message );

如果message不是null,並且它指向了乙個非空的字串,perror首先會列印出message,緊接著列印乙個冒號「:」和乙個空格。最後列印當前errno代表的出錯原因資訊。

注意:當庫函式執行成功的時候,並不會去修改errno;只有當函式執行失敗的時候才會去修改errno的值。這意味著,我們不能通過測試errno來判斷函式執行是否出現了錯誤。只有當確定函式確實出錯以後才去檢查errno的值來檢視出錯的具體原因。

另乙個十分有用的函式是exit,它用來結束乙個程式的執行。它的原型在stdlib.h中定義如下:

void exit( int status );

exit函式會將引數status會返回給作業系統,status指示程式是否正常完成,它跟main函式中的返回值是一樣的。關於status有兩個預定義的符號:exit_success和exit_failure,分別代表成功結束和失敗結束。

當發現阻止程式繼續執行的錯誤條件時,exit函式是特別有用的。通常,我們在呼叫perror函式後,緊接著呼叫exit函式。

注意:exit函式從不會返回任何值。當exit結束時,程式都消失了,**還有可返回的東西呢。

APUE unix出錯處理

當unix函式出錯時 系統呼叫 常常會返回乙個負值,而且整型變數errno通常被設定為含有附加資訊的乙個值。檔案中定義了符合errno以及可以賦予它的各種常量,這些常量都以字元e開頭。另外,unix系統手冊第2部分的第1頁intro 2 列出了所有這些出錯常量。在linux中,出錯常量在errno ...

出錯處理函式

我們知道,系統函式呼叫不能保證每次都成功,必須進行出錯處理,這樣一方面可以保證程式邏輯正常,另一方面可以迅速得到故障資訊。出錯處理函式 include include char strerror int errnum see notes errnum 傳入引數,錯誤編號的值,一般取 errno 的值...

linux 出錯處理

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