共用方式為


strerror、 _strerror、 _wcserror、 __wcserror

取得系統的錯誤訊息 (strerror, _wcserror),或列印的使用者提供的錯誤訊息 (_strerror, __wcserror)。 這些函式更安全版本都可使用; see strerror_s、 _strerror_s、 _wcserror_s、 __wcserror_s .

char *strerror(
   int errnum 
);
char *_strerror(
   const char *strErrMsg 
);
wchar_t * _wcserror(
   int errnum 
);
wchar_t * __wcserror(
   const wchar_t *strErrMsg 
);

參數

  • errnum
    錯誤代碼。

  • strErrMsg
    使用者提供的訊息。

傳回值

所有這些函式會傳回錯誤訊息字串的指標。 後續的呼叫可以覆寫的字串。

備註

strerror函式對應errnum為錯誤訊息字串,傳回的字串指標。 既不strerror或_strerror實際上會列印訊息: 您需要為此,例如呼叫函式輸出 fprintf

if (( _access( "datafile",2 )) == -1 )
   fprintf( stderr, _strerror(NULL) );

如果strErrMsg傳遞做為NULL, _strerror字串,包含系統的錯誤訊息,以產生錯誤的最後一個程式庫呼叫傳回的指標。 新行字元 ('\n') 便會終止的錯誤訊息字串。 如果strErrMsg不等於NULL,然後_strerror字串,包含 (依順序) 字串訊息、 冒號、 一個空格、 系統的錯誤訊息,以產生錯誤,並且新行字元的最後一個程式庫呼叫傳回的指標。 字串訊息可以是,一般而言,94 個字元。

實際的錯誤代碼的_strerror儲存於變數 errno。 系統錯誤訊息透過變數存取 _sys_errlist,也就是郵件已排序的錯誤編號的陣列。 _strerror使用來存取適當的錯誤訊息errno做為索引,此變數的值_sys_errlist。 變數的值 _sys_nerr 中的項目數目上限指_sys_errlist陣列。 若要產生正確的結果,呼叫_strerror程式庫常式因發生錯誤的傳回立即之後。 否則,後續呼叫strerror或_strerror可以覆寫errno的值。

_wcserror與__wcserror的寬字元版本strerror和_strerror,分別。

_strerror_wcserror,以及__wcserror並不屬於 ANSI 定義,而是 Microsoft 擴充功能。 請勿將其位置必要的可攜性 ; 為 ANSI 相容性,請使用strerror相反。

泛用文字常式對應

TCHAR。H 常式

_UNICODE & 未定義的 _MBCS

定義的 _MBCS

定義 _unicode 之後

_tcserror

strerror

strerror

_wcserror

需求

常式

所需的標頭

strerror

<string.h>

_strerror

<string.h>

_wcserror, __wcserror

<string.h>

其他的相容性資訊,請參閱相容性在簡介中。

範例

請參閱範例的 perror

.NET Framework 對等用法

System::Exception::Message

請參閱

參考

字串操作 (CRT)

clearerr

ferror

perror _wperror