perror、_wperrorperror, _wperror

エラー メッセージを印刷します。Print an error message.


void perror(
   const char *message
void _wperror(
   const wchar_t *message


印刷する文字列メッセージ。String message to print.


エラーメッセージは、 stderr関数によって stderr に出力されますThe perror function prints an error message to stderr. _wperrorのワイド文字バージョンです。 _wperrorへのメッセージ引数は、ワイド文字列です。_wperror is a wide-character version of _perror; the message argument to _wperror is a wide-character string. それ以外では_wperrorとの動作は同じです。_wperror and _perror behave identically otherwise.

汎用テキスト ルーチンのマップGeneric-Text Routine Mappings

TCHAR.H のルーチンTCHAR.H routine _UNICODE および _MBCS が未定義の場合_UNICODE & _MBCS not defined _MBCS が定義されている場合_MBCS defined _UNICODE が定義されている場合_UNICODE defined
_tperror_tperror perrorperror perrorperror _wperror_wperror

メッセージは最初に出力され、その後にコロン、次にエラーを生成した最後のライブラリの呼び出しのシステムエラーメッセージ、最後に改行文字が出力されます。message is printed first, followed by a colon, then by the system error message for the last library call that produced the error, and finally by a newline character. Messageが null ポインターまたは null 文字列へのポインターである場合、システムエラーメッセージのみが出力されます。If message is a null pointer or a pointer to a null string, perror prints only the system error message.

エラー番号は、変数 errno (ERRNO.H で定義) に格納されます。The error number is stored in the variable errno (defined in ERRNO.H). システム エラー メッセージは、エラー番号順のメッセージの配列である変数 _sys_errlist を使用してアクセスできます。The system error messages are accessed through the variable _sys_errlist, which is an array of messages ordered by error number. _sys_errlistのインデックスとしてerrno値を使用して、適切なエラーメッセージを出力します。perror prints the appropriate error message using the errno value as an index to _sys_errlist. 変数_sys_nerrの値は、 _sys_errlist配列内の要素の最大数として定義されます。The value of the variable _sys_nerr is defined as the maximum number of elements in the _sys_errlist array.

正確な結果を得るには、ライブラリルーチンからエラーが返された直後に、エラーメッセージを呼び出しますFor accurate results, call perror immediately after a library routine returns with an error. それ以外の場合、後続の呼び出しでerrno値が上書きされる可能性があります。Otherwise, subsequent calls can overwrite the errno value.

Windows オペレーティングシステムでは 、errno に列挙値が表示されます。H は使用されていません。In the Windows operating system, some errno values listed in ERRNO.H are unused. これらの値は、UNIX オペレーティング システムで使用するために予約されたものです。These values are reserved for use by the UNIX operating system. Windows オペレーティングシステムで使用されるerrno値の一覧については、「 _doserrno、errno、_sys_errlist、および _sys_nerr 」を参照してください。See _doserrno, errno, _sys_errlist, and _sys_nerr for a listing of errno values used by the Windows operating system. は、これらのプラットフォームで使用されていないerrno値に対して空の文字列を出力します。perror prints an empty string for any errno value not used by these platforms.


ルーチンによって返される値Routine 必須ヘッダーRequired header
perrorperror <stdio.h> または <stdlib.h><stdio.h> or <stdlib.h>
_wperror_wperror <stdio.h> または <wchar.h><stdio.h> or <wchar.h>

互換性の詳細については、「 互換性」を参照してください。For additional compatibility information, see Compatibility.


C ランタイム ライブラリのすべてのバージョン。All versions of the C run-time libraries.


// 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.
      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

関連項目See also

プロセス制御と環境制御Process and Environment Control
strerror、_strerror、_wcserror、__wcserrorstrerror, _strerror, _wcserror, __wcserror