vsnprintf, _vsnprintf, _vsnprintf_l, _vsnwprintf, _vsnwprintf_l
인수 목록에 대 한 포인터를 사용 하 여 형식이 지정 된 출력을 작성 합니다.이러한 함수를 더 안전한 버전을 사용할 수 있습니다. see vsnprintf_s, _vsnprintf_s, _vsnprintf_s_l, _vsnwprintf_s, _vsnwprintf_s_l.
int vsnprintf(
char *buffer,
size_t count,
const char *format,
va_list argptr
);
int _vsnprintf(
char *buffer,
size_t count,
const char *format,
va_list argptr
);
int _vsnprintf_l(
char *buffer,
size_t count,
const char *format,
locale_t locale,
va_list argptr
);
int _vsnwprintf(
wchar_t *buffer,
size_t count,
const wchar_t *format,
va_list argptr
);
int _vsnwprintf_l(
wchar_t *buffer,
size_t count,
const wchar_t *format,
locale_t locale,
va_list argptr
);
template <size_t size>
int vsnprintf(
char (&buffer)[size],
size_t count,
const char *format,
va_list argptr
); // C++ only
template <size_t size>
int _vsnprintf(
char (&buffer)[size],
size_t count,
const char *format,
va_list argptr
); // C++ only
template <size_t size>
int _vsnprintf_l(
char (&buffer)[size],
size_t count,
const char *format,
locale_t locale,
va_list argptr
); // C++ only
template <size_t size>
int _vsnwprintf(
wchar_t (&buffer)[size],
size_t count,
const wchar_t *format,
va_list argptr
); // C++ only
template <size_t size>
int _vsnwprintf_l(
wchar_t (&buffer)[size],
size_t count,
const wchar_t *format,
locale_t locale,
va_list argptr
); // C++ only
매개 변수
buffer
출력에 대 한 저장소 위치입니다.count
최대 문자 수를 쓸 수 있습니다.format
형식 사양입니다.argptr
인수 목록에 대 한 포인터입니다.locale
사용 하는 로캘.
자세한 내용은 형식 사양을.
반환 값
vsnprintf_vsnprintf, 및 _vsnwprintf 쓸 문자 개수 보다 작거나 인지 쓴 문자 수를 반환 합니다. count. 쓸 문자 수 보다 큰 경우 count, 이러한 기능을 출력 잘렸습니다 나타내는-1을 반환 합니다.하나 작성 된 경우 종료 null 반환 값은 포함 되지 않습니다.
경우 buffer 또는 format 입니다 NULL, count가 0 보다 작거나 경우 이러한 함수는 잘못 된 매개 변수 처리기의 설명에 따라 호출 하거나 매개 변수 유효성 검사.이 함수 실행을 계속 수 있으면-1을 반환 합니다. 설정 하 고 errno 에 EINVAL.
설명
각이 함수는 인수 목록에 대 한 포인터를 사용 하 고 데이터의 형식이 지정 및 최대 기록 count 에 문자 메모리를 가리키는 의해 buffer.마지막에 공간이 있는 경우 (즉, 문자를 쓸 수 있는 경우 보다 count), 버퍼가 null로 종료 됩니다.
보안 정보 |
---|
확인 format 사용자 정의 문자열이 아닙니다.자세한 내용은 버퍼 오버런 방지. |
[!참고]
룸에 대 한 종료 null 인지 확인 하려면 수 count 버퍼 길이 보다 엄격 하 게 덜이 고 버퍼가 함수를 호출 하기 전에 null로 초기화 합니다.
vsnprintf동일 _vsnprintf.vsnprintfANSI 표준 준수에 대 한 포함 되어 있습니다. _vnsprintf이전 버전과 호환성을 위해 유지 됩니다.
버전으로 이러한 함수는 _l 접미사는 현재 스레드의 로캘 대신 전달 된 로캘 매개 변수를 사용할 경우를 제외 하 고 동일 합니다.
C + +에서이 함수는 최신, 보안 상응 하는 이러한 함수를 호출 하는 템플릿 오버 로드 되어 있습니다.자세한 내용은 보안 템플릿 오버 로드를 참조하십시오.
일반 텍스트 루틴 매핑
TCHAR입니다.H 루틴 |
_UNICODE 및 _Mbcs가 정의 되지 않았습니다. |
_Mbcs가 정의 |
_Unicode가 정의 |
---|---|---|---|
_vsntprintf |
_vsnprintf |
_vsnprintf |
_vsnwprintf |
_vsntprintf_l |
_vsnprintf_l |
_vsnprintf_l |
_vsnwprintf_l |
요구 사항
루틴 |
필수 헤더 |
선택적 헤더 |
---|---|---|
vsnprintf |
<stdio.h> 및 <stdarg.h> |
<varargs.h> * |
_vsnprintf, _vsnprintf_l |
<stdio.h> 및 <stdarg.h> |
<varargs.h> * |
_vsnwprintf, _vsnwprintf_l |
<stdio.h> 또는 <wchar.h> 및 <stdarg.h> |
<varargs.h> * |
* V UNIX 호환성을 위해 필요 합니다.
추가 호환성 정보를 참조 하십시오. 호환성 소개에서 합니다.
예제
// crt_vsnprintf.cpp
// compile with: /W3
#include <stdio.h>
#include <wtypes.h>
void FormatOutput(LPCSTR formatstring, ...)
{
int nSize = 0;
char buff[10];
memset(buff, 0, sizeof(buff));
va_list args;
va_start(args, formatstring);
nSize = vsnprintf( buff, sizeof(buff) - 1, formatstring, args); // C4996
// Note: vsnprintf is deprecated; consider vsnprintf_s instead
printf("nSize: %d, buff: %s\n", nSize, buff);
}
int main() {
FormatOutput("%s %s", "Hi", "there");
FormatOutput("%s %s", "Hi", "there!");
FormatOutput("%s %s", "Hi", "there!!");
}
해당 .NET Framework 항목
해당 사항 없음. 표준 C 함수를 호출할 수 있습니다 PInvoke. 자세한 내용은 플랫폼 호출 예제.
참고 항목
참조
않는다면, _fprintf_l, fwprintf, _fwprintf_l
printf, _printf_l, wprintf, _wprintf_l