다음을 통해 공유


perror, _wperror

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

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

매개 변수

  • string
    인쇄할 문자열 메세지 입니다.

설명

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

제네릭 텍스트 라우팅 매핑

TCHAR.H 루틴

_UNICODE 및 _MBCS 정의되지 않음

_MBCS 정의됨

_UNICODE 정의됨

_tperror

perror

perror

_wperror

string 는 콜론 뒤에 우선 인쇄되고, 그 다음 오류를 생성한 마지막 라이브러리 호출의 시스템 오류 메세지에 따라 인쇄됩니다. 마지막으로 줄 바꿈 문자입니다. string 가 null 포인터거나 null 문자열에 대한 포인터인 경우, perror 는 오류 메세지만 출력합니다.

오류 번호는 errno 변수에 저장됩니다. (ERRNO.H에 정의 합니다.H). 시스템 에러 메시지는 _sys_errlist 변수를 통해 액세스 되는데, 이것은 오류 번호에 따라 정렬된 메시지의 배열입니다. perrorerrno 값을 _sys_errlist 에 대한 인덱스 값으로 사용하여 적절할 오류 메세지를 인쇄합니다. 변수 _sys_nerr 의 값은 _sys_errlist 배열 내에서 요소의 최대 수로 정의됩니다.

정확한 결과에 대해 , 라이브러리 루틴이 오류와 함께 반환하는 즉시 perror 를 호출하십시오. 그렇지 않으면, 다음 호출은 errno 를 덮어 쓸 수도 있습니다.

Windows에서 운영 체제에서 ERRNO.H 에 정의된 일부 errno 값은 사용되지 않습니다. 이러한 값은 UNIX 운영 체제에 의해 예약 되어 있습니다. Windows 운영 체제가 사용하는 errno 값의 목록에 대해 _doserrno, errno, _sys_errlist, and _sys_nerr 를 참조하십시오. 이러한 플랫폼에서 사용하지 않는 errno 에 대해 perror 는 빈 문자열을 인쇄합니다.

요구 사항

루틴

필수 헤더

perror

<stdio.h> or <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 );
   }
}

Output

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를 사용합니다. 자세한 내용은 플랫폼 호출 예제를 참조하십시오.

참고 항목

참조

프로세스 및 환경 제어

clearerr

ferror

strerror, _strerror, _wcserror, __wcserror