다음을 통해 공유


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) );

strErrMsg가 NULL로 전달되면 _strerror는 오류를 발생시킨 마지막 라이브러리 호출에 대한 시스템 오류 메시지가 포함된 문자열을 가리키는 포인터를 반환합니다. 오류 메시지 문자열은 줄 바꿈 문자('\n')로 종료됩니다. strErrMsg가 NULL과 같지 않으면 _strerror은 문자열 메시지, 콜론, 공백, 오류가 발생한 마지막 라이브러리 호출에 대한 시스템 오류 메시지 및 줄 바꿈 문자가 순서대로 포함된 문자열에 대한 포인터를 반환합니다. 문자열 메시지는 94자 이하여야 합니다.

_strerror의 실제 오류 번호는 변수 errno에 저장됩니다. 정확한 결과를 생성하려면 라이브러리 루틴이 오류와 함께 반환될 때 바로 _strerror을 호출합니다. 그렇지 않으면 strerror 또는 _strerror에 대한 후속 호출이 errno 값을 덮어쓸 수 있습니다.

_wcserror 및 __wcserror은 각각 strerror 및 _strerror의 와이드 문자 버전입니다.

_strerror, _wcserror 및 __wcserror은 ANSI 정의의 일부가 아닙니다. 이러한 함수는 Microsoft 확장으로 이식 가능한 코드가 필요한 경우에는 사용하지 않는 것이 좋습니다. ANSI 호환성을 위해 대신 strerror을 사용하세요.

오류 문자열을 얻으려면 사용되지 않는 매크로 _sys_errlist_sys_nerr과 사용되지 않는 내부 함수 __sys_errlist__sys_nerr 대신 strerror 또는 _wcserror을 사용하는 것이 좋습니다.

제네릭 텍스트 라우팅 매핑

TCHAR.H 루틴

_UNICODE 및 _MBCS 정의되지 않음

_MBCS 정의됨

_UNICODE 정의됨

_tcserror

strerror

strerror

_wcserror

요구 사항

루틴

필수 헤더

strerror

<string.h>

_strerror

<string.h>

_wcserror, __wcserror

<string.h>

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

예제

perror의 예를 참조하세요.

해당 .NET Framework 항목

System::Exception::Message

참고 항목

참조

문자열 조작(CRT)

clearerr

ferror

perror, _wperror