1. 程式人生 > >C 關於錯誤 errno stderr perror stderror strerror

C 關於錯誤 errno stderr perror stderror strerror

1)errno表示錯誤程式碼。 記錄系統的最後一次錯誤程式碼。程式碼是一個int型的值,在errno.h中定義;

2)stderr是linux(unix)標準出錯輸出。是不帶緩衝的,這使得出錯資訊可以直接儘快地顯示出來。
linux中的一個程序啟動時,都會開啟三個檔案:標準輸入、標準輸出和標準出錯處理。
通常這三個檔案都與終端聯絡。這三個檔案分別對應檔案描述符0、1、2。
系隊統自定義了三個檔案指標stdin、stdout、stderr,分別指向標準輸入、標準輸出和標準出錯輸出。
通常結合fprintf使用:fprintf(stderr,"error message")。

eg.

fprintf(stdout,"Hello "); // 有緩衝  
fprintf(stderr,"World!");  //無緩衝

輸出:world!Hello

3)perror是錯誤輸出函式,在標準輸出裝置上輸出一個錯誤資訊。
是對errno的封裝。例如perror("fun"),其輸出為:fun:後面跟著錯誤資訊(加一個換行符)。包含標頭檔案stdio.h.

4)stderror是通過引數errno,返回錯誤資訊。
 即stderror(errno),可用printf函式打印出錯資訊,用於除錯。包含標頭檔案string.h。

5)strerror返回errno當前錯誤的字串,strerror(errno)就是把錯誤資訊轉化問字串。