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
の例を参照してください。
関連項目
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示