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.