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。