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
를 통해 액세스됩니다. perror
는 errno
값을 _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