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참조하세요.

참고 항목

문자열 조작
clearerr
ferror
perror, _wperror