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