strerror, _strerror, _wcserror, __wcserror

システム エラー メッセージの文字列 (strerror_wcserror) を取得します。または、ユーザーが指定したエラー メッセージの文字列 (_strerror__wcserror) を書式設定します。 これらの関数のセキュリティを強化したバージョンを使用できます。「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) );

として渡されたNULL場合strErrMsgは、_strerror文字列へのポインターを返します。 これには、エラーを生成した最後のライブラリの呼び出しに対するシステム エラー メッセージが含まれます。 呼び出 __wcserrorすと、エラー メッセージ文字列は改行文字 ('\n') で終了します。 他の関数は追加 '\n'しません。 そうでないNULL場合strErrMsg、文字列には、文字列、コロン、スペース、システム エラー メッセージの順番strErrMsgが含まれます。 文字列メッセージの長さは、最大 94 文字 (狭い () 文字またはワイド (_strerror__wcserror) 文字のいずれかです。

実際のエラー番号 _strerror は変数 errnoに格納されます。 正確な結果を生成するには、ライブラリ ルーチンからエラーが返された直後に呼び出 _strerror します。 そうしないと、後でライブラリ ルーチンを呼び出して値が上書きされる errno 可能性があります。

_wcserror、および __wcserror は、それぞれ、strerror、および _strerror のワイド文字バージョンです。

_strerror_wcserror__wcserror Microsoft 固有であり、Standard C ライブラリの一部ではありません。 移植可能なコードが必要な場合、これらを使用することはお勧めしません。 Standard C の互換性を保つには、代わりに使用 strerror してください。

エラー文字列を取得するには、strerror_wcserror非推奨のマクロ_sys_errlist_sys_nerr非推奨の内部関数__sys_errlist__sys_nerr.

既定では、この関数のグローバル状態の適用対象は、アプリケーションになります。 この動作を変更するには、「CRT のグローバル状態」を参照してください

汎用テキスト ルーチンのマップ

TCHAR.H のルーチン _UNICODE_MBCS が定義されていない _MBCS が定義されている _UNICODE が定義されている
_tcserror strerror strerror _wcserror

必要条件

ルーチンによって返される値 必須ヘッダー
strerror <string.h>
_strerror <string.h>
_wcserror, __wcserror <string.h>

互換性の詳細については、「 Compatibility」を参照してください。

perror の例を参照してください。

関連項目

文字列操作
clearerr
ferror
perror, _wperror