Share via


strerror_s, _strerror_s, _wcserror_s, __wcserror_s

시스템 오류 메시지가 (strerror_s, _wcserror_s) 이나 사용자 제공 오류 메시지를 표시 합니다 (_strerror_s, __wcserror_s).이러한 버전의 있습니다 strerror, _strerror, _wcserror, __wcserror 와 보안 기능 향상에 설명 된 대로 CRT의 보안 기능.

errno_t strerror_s(
   char *buffer,
   size_t numberOfElements,
   int errnum 
);
errno_t _strerror_s(
   char *buffer,
   size_t numberOfElements,
   const char *strErrMsg 
);
errno_t _wcserror_s(
   wchar_t *buffer,
   size_t numberOfElements,
   int errnum 
);
errno_t __wcserror_s(
   wchar_t *buffer,
   size_t numberOfElements,
   const wchar_t *strErrMsg 
);
template <size_t size>
errno_t strerror_s(
   char (&buffer)[size],
   int errnum 
); // C++ only
template <size_t size>
errno_t _strerror_s(
   char (&buffer)[size],
   const char *strErrMsg 
); // C++ only
template <size_t size>
errno_t _wcserror_s(
   wchar_t (&buffer)[size],
   int errnum 
); // C++ only
template <size_t size>
errno_t __wcserror_s(
   wchar_t (&buffer)[size],
   const wchar_t *strErrMsg 
); // C++ only

매개 변수

  • buffer
    오류 문자열을 저장할 버퍼입니다.

  • numberOfElements
    버퍼의 크기입니다.

  • errnum
    오류 번호.

  • strErrMsg
    사용자가 제공 하는 메시지입니다.

반환 값

연결에 성공 하면 0, 실패 시 오류 코드입니다.

오류 Condtions

buffer

numberOfElements

strErrMsg

내용buffer

NULL

모든

모든

n/a

모든

0

모든

수정 되지 않음

설명

strerror_s 맵 기능 errnum 를 오류 메시지 문자열로 문자열을 포인터를 반환 합니다._strerror_s오류 번호는 필요 하지 않습니다. 현재 값을 사용 하 여 errno 적절 한 메시지를 확인 합니다.모두 strerror_s 또는 _strerror_s 실제로 메시지를 인쇄: 출력 함수 호출 해야에 않는다면:

if (( _access( "datafile",2 )) == -1 )
{
   _strerror_s(buffer, 80);
   fprintf( stderr, buffer );
}

경우 strErrMsg 입니다 NULL, _strerror_s 오류가 생성 되는 마지막 라이브러리 호출에 대 한 시스템 오류 메시지를 포함 하는 문자열에 대 한 포인터를 반환 합니다.오류 메시지 문자열은 줄 바꿈 문자 ('\n') 종료 됩니다.경우 strErrMsg 같지 않은 NULL, 다음 _strerror_s (순서 대로)에 콜론, 공백, 시스템 오류 메시지를 생성 하 고 오류 메시지를 줄 바꿈 문자 마지막 라이브러리 호출에 대 한 문자열 메시지를 포함 하는 문자열에 대 한 포인터를 반환 합니다.최대, 문자열 메시지 94 자 수 있습니다.

길이 초과 하는 경우 이러한 함수는 오류 메시지 자를 numberOfElements -1.결과 문자열에 buffer 항상 null로 끝나는 것입니다.

실제 오류 번호를 _strerror_s 변수에 저장 된 errno.시스템 오류 메시지 변수를 통해 액세스 하는 _sys_errlist, 오류 번호로 정렬 된 메시지의 배열입니다._strerror_s해당 오류 메시지를 사용 하 여 액세스 하는 errno 값의 인덱스 변수를 _sys_errlist.변수 값 _sys_nerr 에 있는 요소의 최대 수로 정의 됩니다의 _sys_errlist 배열.정확한 결과 얻을 수를 호출 _strerror_s 라이브러리 루틴에서 오류를 반환 하는 즉시 후.그렇지 않으면 후속 호출을 strerror_s 또는 _strerror_s 덮어쓸 수는 errno 값입니다.

_wcserror_s및 __wcserror_s의 와이드 문자 버전은 strerror_s및 _strerror_s, 각각.

이러한 함수 매개 변수의 유효성을 검사 합니다.버퍼가 NULL 또는 크기 매개 변수가 0 인 경우에 설명 된 대로 잘못 된 매개 변수 처리기가 호출 매개 변수 유효성 검사 .실행 계속 될 수 있습니다 경우에 함수 반환 EINVAL 를 설정 하 고 errno 에 EINVAL.

_strerror_s, _wcserror_s,및 __wcserror_s ANSI 정의의 일부는 아니지만 대신 Microsoft 확장입니다.이 이식성이 필요를 사용 하지는 않습니다. ANSI 호환성을 사용 하 여 strerror_s 대신 합니다.

C + +에서이 함수를 사용 하 여 템플릿 오버 로드에 단순화 됩니다. 오버 버퍼 길이 size 인수를 지정 하지 않아도 자동으로 유추할 수 있습니다.자세한 내용은 보안 템플릿 오버 로드를 참조하십시오.

이 함수들은 먼저 버퍼 0xFD 입력합니다.이 동작을 해제 하려면 사용 _CrtSetDebugFillThreshold.

일반 텍스트 루틴 매핑

TCHAR입니다.H 루틴

_UNICODE 및 _Mbcs가 정의 되지 않았습니다.

_Mbcs가 정의

_Unicode가 정의

_tcserror_s

strerror_s

strerror_s

_wcserror_s

요구 사항

루틴

필수 헤더

strerror_s, _strerror_s

<string.h>

_wcserror_s, __wcserror_s

<string.h> 또는 <wchar.h>

추가 호환성 정보를 참조 하십시오. 호환성 소개에서 합니다.

예제

예제를 보려면 perror.

해당 .NET Framework 항목

System::Exception::Message

참고 항목

참조

문자열 조작 (CRT)

clearerr

ferror

perror, _wperror