perror、_wperror
エラー メッセージを出力します。
void perror(
const char *string
);
void _wperror(
const wchar_t *string
);
パラメーター
- string
印刷するメッセージ文字列。
解説
perror の関数は stderr にエラー メッセージが出力されます。_wperror は のワイド文字バージョンです _perror; _wperror への string の引数はワイド文字列です。_wperror と _perrorこれらの関数の動作は同じです。
汎用テキスト ルーチンのマップ
TCHAR.H のルーチン |
_UNICODE および _MBCS が未定義の場合 |
_MBCS が定義されている場合 |
_UNICODE が定義されている場合 |
---|---|---|---|
_tperror |
perror |
perror |
_wperror |
stringコロンエラーを生成し最後に改行文字でその後最初に出力される最後のライブラリの呼び出しのシステム エラー メッセージ。string が null 文字列に null ポインターまたはポインターの場合perror はシステム エラー メッセージだけを印刷します。
エラー番号は errno 変数に格納されます () ERRNO.H で定義されます。システム エラー メッセージは可変 _sys_errlist によりエラー番号ありメッセージの配列です。perror は _sys_errlist にインデックスとして errno の値を使用して適切なエラー メッセージが出力されます。_sys_nerr 変数の値は _sys_errlist の配列の要素の最大数として定義されます。
正確な結果を得るにはライブラリ ルーチンの直後の呼び出し perrorエラーが返されます。は後続の呼び出しは errno の値をオーバーライドできます。
Windows オペレーティング システムではERRNO.H に示します errno のある値は使用されません。これらの値はUNIX のオペレーティング システムで使用するために予約されています。Windows オペレーティング システムで使用する errno の値の一覧については_doserrnoerrno_sys_errlist と _sys_nerr を参照してください。perror は これらのプラットフォームで使用されていない errno の値ごとに空の文字列を出力します。
必要条件
ルーチン |
必須ヘッダー |
---|---|
perror |
<stdio.h> または <stdlib.h> |
_wperror |
<stdio.h> または <wchar.h> |
互換性の詳細については、「C ランタイム ライブラリ」の「互換性」を参照してください。
ライブラリ
C ランタイム ライブラリのすべてのバージョン。
使用例
// crt_perror.c
// compile with: /W3
/* This program attempts to open a file named
* NOSUCHF.ILE. Because this file probably doesn't exist,
* an error message is displayed. The same message is
* created using perror, strerror, and _strerror.
*/
#include <fcntl.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <io.h>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <share.h>
int main( void )
{
int fh;
if( _sopen_s( &fh, "NOSUCHF.ILE", _O_RDONLY, _SH_DENYNO, 0 ) != 0 )
{
/* Three ways to create error message: */
perror( "perror says open failed" );
printf( "strerror says open failed: %s\n",
strerror( errno ) ); // C4996
printf( _strerror( "_strerror says open failed" ) ); // C4996
// Note: strerror and _strerror are deprecated; consider
// using strerror_s and _strerror_s instead.
}
else
{
printf( "open succeeded on input file\n" );
_close( fh );
}
}
出力
perror says open failed: No such file or directory
strerror says open failed: No such file or directory
_strerror says open failed: No such file or directory
同等の .NET Framework 関数
該当なし標準 C 関数を呼び出すには、PInvoke を使用します。詳細については、「プラットフォーム呼び出しの例」を参照してください。