다음을 통해 공유


perror, _wperror

오류 메시지를 인쇄합니다.

구문

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

매개 변수

message
인쇄할 문자열 메시지입니다.

설명

perror 함수는 오류 메시지를 stderr에 인쇄합니다. _wperror_perror의 와이드 문자 버전이며, message 에 대한 _wperror 인수는 와이드 문자열입니다. 그렇지 않으면_wperror_perror 이 동일하게 작동합니다.

기본적으로 이 함수의 전역 상태는 애플리케이션으로 범위가 지정됩니다. 이 동작을 변경하려면 CRT 전역 상태를 참조하세요.

일반 텍스트 루틴 매핑

TCHAR.H 루틴 _UNICODE_MBCS 정의되지 않음 정의된 _MBCS 정의된 _UNICODE
_tperror perror perror _wperror

message이 먼저 인쇄되고, 뒤에 콜론, 오류를 생성한 마지막 라이브러리 호출에 대한 시스템 오류 메시지, 줄 바꿈 문자가 차례로 인쇄됩니다. message이 null 포인터 또는 null 문자열에 대한 포인터인 경우 perror만 시스템 오류 메시지를 인쇄합니다.

오류 번호는 변수 errno 에 저장됩니다(ERRNO에 정의됨). H). 시스템 오류 메시지는 오류 번호로 정렬된 메시지 배열인 변수 _sys_errlist를 통해 액세스됩니다. perrorerrno 값을 _sys_errlist에 대한 인덱스로 사용하여 적합한 오류 메시지를 인쇄합니다. 변수 _sys_nerr 의 값은 배열의 최대 요소 수로 _sys_errlist 정의됩니다.

정확한 결과를 얻으려면 라이브러리 루틴이 오류를 반환한 직후 호출 perror 합니다. 그렇지 않으면 후속 호출에서 errno 값을 덮어쓸 수 있습니다.

Windows 운영 체제에서 ERRNO.H에 나열된 일부 errno 값이 사용되지 않습니다. 이러한 값은 UNIX 운영 체제에서 사용되도록 예약되어 있습니다. Windows 운영 체제에서 사용하는 값 목록을 errno 참조errno하세요. _doserrno_sys_errlist_sys_nerr perror는 이러한 플랫폼에서 사용하지 않는 모든 errno 값에 대한 빈 문자열을 인쇄합니다.

요구 사항

루틴에서 반환된 값 필수 헤더
perror <stdio.h> 또는 <stdlib.h>
_wperror <stdio.h> 또는 <wchar.h>

호환성에 대한 자세한 내용은 호환성을 참조하세요.

라이브러리

모든 버전의 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

참고 항목

프로세스 및 환경 제어
clearerr
ferror
strerror, _strerror, _wcserror__wcserror