次の方法で共有


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) );

strErrMsg が NULL として渡された場合_strerror は文字列へのポインターをエラーを生成した最後のライブラリの呼び出しのシステム エラー メッセージ返します。エラー メッセージ文字列は改行文字 (" \ n ") で終了します。strErrMsg が NULL と等しく_strerror は文字列へのポインター (順序で) ライブラリの最後の呼び出しのメッセージ文字列コロン空白システム エラー メッセージ返し改行文字やエラーが生成されます。メッセージ文字列の長さは最大でも 94 文字です。

_strerror の実際のエラー番号は可変 errno に格納されます。システム エラー メッセージは可変 _sys_errlist によりエラー番号ありメッセージの配列です。_strerror は可変 _sys_errlist にインデックスとして errno の値を使用して適切なエラー メッセージにアクセスします。_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>

互換性の詳細については、「C ランタイム ライブラリ」の「互換性」を参照してください。

使用例

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

同等の .NET Framework 関数

System:: 例外 :: メッセージ

参照

関連項目

文字列操作 (CRT)

clearerr

ferror

perror、_wperror