strerror
, _strerror
, _wcserror
__wcserror
시스템 오류 메시지 문자열을 얻거나(strerror
, _wcserror
) 사용자가 제공하는 오류 메시지 문자열의 형식을 지정합니다(_strerror
, __wcserror
). 이러한 함수의 더 안전한 버전을 사용할 수 있습니다. 참조 strerror_s
, _strerror_s
, _wcserror_s
__wcserror_s
.
구문
char * strerror(
int errnum );
char * _strerror(
const char *strErrMsg );
wchar_t * _wcserror(
int errnum );
wchar_t * __wcserror(
const wchar_t *strErrMsg );
매개 변수
errnum
오류 번호입니다.
strErrMsg
사용자 제공 메시지
반환 값
이러한 모든 함수는 런타임이 소유한 스레드 로컬 스토리지 버퍼에서 오류 메시지 문자열에 대한 포인터를 반환합니다. 나중에 동일한 스레드에서 호출하면 이 문자열을 덮어쓸 수 있습니다.
설명
strerror
함수는 errnum
을 오류 메시지 문자열로 매핑하고 해당 문자열에 대한 포인터를 반환합니다. 및 _strerror
함수는 strerror
실제로 메시지를 인쇄하지 않습니다. 인쇄하려면 다음과 같은 fprintf
출력 함수를 호출합니다.
if (( _access( "datafile", 2 )) == -1 )
fprintf( stderr, _strerror(NULL) );
로 NULL
_strerror
전달되는 경우 strErrMsg
문자열에 대한 포인터를 반환합니다. 오류를 생성한 마지막 라이브러리 호출에 대한 시스템 오류 메시지가 포함됩니다. 호출 __wcserror
하는 경우 오류 메시지 문자열은 줄 바꿈 문자('\n'
)에 의해 종료됩니다. 다른 함수는 추가 '\n'
하지 않습니다. 그렇지 않은 NULL
경우 strErrMsg
문자열에는 문자열, 콜론, 공간, 시스템 오류 메시지가 순서대로 strErrMsg
포함됩니다. 문자열 메시지는 최대 94자 길이로 좁은(_strerror
) 또는 와이드(__wcserror
) 문자일 수 있습니다.
실제 오류 번호 _strerror
는 변수 errno
에 저장됩니다. 정확한 결과를 생성하려면 라이브러리 루틴이 오류를 반환한 직후 호출 _strerror
합니다. 그렇지 않으면 나중에 라이브러리 루틴에 대한 호출이 값을 덮어쓸 errno
수 있습니다.
_wcserror
및 __wcserror
은 각각 strerror
및 _strerror
의 와이드 문자 버전입니다.
_strerror
_wcserror
__wcserror
은 표준 C 라이브러리의 일부가 아닌 Microsoft 전용입니다. 이식 가능한 코드를 원하는 곳에 사용하지 않는 것이 좋습니다. 표준 C 호환성을 위해 대신 사용합니다 strerror
.
오류 문자열을 strerror
_wcserror
얻으려면 사용되지 않는 매크로 _sys_errlist
와 사용되지 않는 내부 함수 및 _sys_nerr
대신 권장합니다 __sys_errlist
__sys_nerr
.
기본적으로 이 함수의 전역 상태는 애플리케이션으로 범위가 지정됩니다. 이 동작을 변경하려면 CRT 전역 상태를 참조하세요.
일반 텍스트 루틴 매핑
TCHAR.H 루틴 | _UNICODE 및 _MBCS 정의되지 않음 |
정의된 _MBCS |
정의된 _UNICODE |
---|---|---|---|
_tcserror |
strerror |
strerror |
_wcserror |
요구 사항
루틴에서 반환된 값 | 필수 헤더 |
---|---|
strerror |
<string.h> |
_strerror |
<string.h> |
_wcserror , __wcserror |
<string.h> |
호환성에 대한 자세한 내용은 호환성을 참조하세요.
예시
perror
에 대한 예를 참조하세요.