vprintf 함수

이러한 vprintf 함수는 각각 인수 목록에 대한 포인터를 가져오며 지정된 데이터의 형식을 지정하고 특정 대상에 지정된 데이터를 씁니다. 이러한 함수는 수행되는 매개 변수 유효성 검사, 함수가 와이드 문자를 사용하는지 또는 싱글바이트 문자열을 사용하는지, 출력 대상 및 형식 문자열에 매개 변수가 사용되는 순서를 지정하는 기능에 대한 지원 측면에서 다릅니다.

_vcprintf, _vcwprintf vfprintf, vfwprintf
_vfprintf_p, _vfprintf_p_l, _vfwprintf_p, _vfwprintf_p_l vfprintf_s, _vfprintf_s_l, vfwprintf_s, _vfwprintf_s_l
vprintf, vwprintf _vprintf_p, _vprintf_p_l, _vwprintf_p, _vwprintf_p_l
vprintf_s, _vprintf_s_l, vwprintf_s, _vwprintf_s_l vsprintf, vswprintf
_vsprintf_p, _vsprintf_p_l, _vswprintf_p, _vswprintf_p_l vsprintf_s, _vsprintf_s_l, vswprintf_s, _vswprintf_s_l
_vscprintf, _vscprintf_l, _vscwprintf, _vscwprintf_l _vsnprintf, _vsnwprintf

설명

vprintf 함수는 다음 표에 나열된 상대 함수와 비슷합니다. 그러나 각 vprintf 함수는 인수 목록에 대한 포인터를 수락하지만 각 상대 함수는 인수 목록을 수락합니다.

이러한 함수는 대상 출력에 대한 데이터 서식을 다음과 같이 지정합니다.

함수 상대 함수 출력 대상 매개 변수 유효성 검사 위치 매개 변수 지원
_vcprintf _cprintf 콘솔 Null인지 확인합니다. 아니요
_vcwprintf _cwprintf 콘솔 Null인지 확인합니다. 아니요
vfprintf fprintf Stream Null인지 확인합니다. 아니요
vfprintf_p fprintf_p Stream Null 및 유효한 형식인지 확인합니다.
vfprintf_s fprintf_s Stream Null 및 유효한 형식인지 확인합니다. 아니요
vfwprintf fwprintf Stream Null인지 확인합니다. 아니요
vfwprintf_p fwprintf_p Stream Null 및 유효한 형식인지 확인합니다.
vfwprintf_s fwprintf_s Stream Null 및 유효한 형식인지 확인합니다. 아니요
vprintf printf Stdout Null인지 확인합니다. 아니요
vprintf_p printf_p Stdout Null 및 유효한 형식인지 확인합니다.
vprintf_s printf_s Stdout Null 및 유효한 형식인지 확인합니다. 아니요
vwprintf wprintf Stdout Null인지 확인합니다. 아니요
vwprintf_p wprintf_p Stdout Null 및 유효한 형식인지 확인합니다.
vwprintf_s wprintf_s Stdout Null 및 유효한 형식인지 확인합니다. 아니요
vsprintf sprintf buffer로 가리키는 메모리 Null인지 확인합니다. 아니요
vsprintf_p sprintf_p buffer로 가리키는 메모리 Null 및 유효한 형식인지 확인합니다.
vsprintf_s sprintf_s buffer로 가리키는 메모리 Null 및 유효한 형식인지 확인합니다. 아니요
vswprintf swprintf buffer로 가리키는 메모리 Null인지 확인합니다. 아니요
vswprintf_p swprintf_p buffer로 가리키는 메모리 Null 및 유효한 형식인지 확인합니다.
vswprintf_s swprintf_s buffer로 가리키는 메모리 Null 및 유효한 형식인지 확인합니다. 아니요
_vscprintf _vscprintf buffer로 가리키는 메모리 Null인지 확인합니다. 아니요
_vscwprintf _vscwprintf buffer로 가리키는 메모리 Null인지 확인합니다. 아니요
_vsnprintf _snprintf buffer로 가리키는 메모리 Null인지 확인합니다. 아니요
_vsnwprintf _snwprintf buffer로 가리키는 메모리 Null인지 확인합니다. no

argptr 인수 형식은 VARARGS.H 및 STDARG.H에 정의된 va_list입니다. argptr 변수는 va_start에 의해 초기화되어야 하고 후속 va_arg 호출로 다시 초기화할 수 있습니다. argptr은 인수 목록의 맨 처음을 가리킵니다. 이러한 인수는 format 인수에 지정된 해당 사양에 따라 출력을 위해 변환 및 전송됩니다. formatprintf에 대한 format 인수와 같은 양식 및 함수를 갖습니다. 이러한 함수는 va_end를 호출하지 않습니다. 각 vprintf 함수에 대한 자세한 설명을 보려면 앞의 표에 나열된 상대 함수에 대한 설명을 참조하세요.

_vsnprintfcount 바이트만 buffer에 쓴다는 점에서 vsprintf와 다릅니다.

이름에 w 중위가 있는 이러한 함수의 버전은 w 중위가 없는 해당 함수의 와이드 문자 버전입니다. 이러한 각 와이드 문자 함수에서 bufferformat은 와이드 문자열입니다. 그렇지 않은 경우 각 와이드 문자 함수는 해당 SBCS 상대 함수와 동일하게 동작합니다.

_s_p 접미사가 있는 이러한 함수 버전이 좀 더 안전한 버전입니다. 이러한 버전은 형식 문자열의 유효성을 검사하고 형식 문자열 형식이 잘못되면(예를 들어 잘못된 형식 지정 문자 사용) 예외를 발생합니다.

_p 접미사가 있는 이러한 함수 버전은 형식 문자열에서 제공된 인수가 대체되는 순서를 지정하는 기능을 제공합니다. 자세한 내용은 printf_p 위치 매개 변수를 참조하세요.

vsprintf, vswprintf, _vsnprintf_vsnwprintf의 경우 중복되는 문자열 간에 복사가 진행되면 이 동작은 정의되지 않습니다.

중요

format이 사용자 정의 문자열이 아닌지 확인하세요. 자세한 내용은 버퍼 오버런 방지를 참조하세요. 이러한 함수의 보안 버전을 사용하는 경우(_s 또는 _p 접미사) 사용자 제공 형식 문자열은 사용자 제공 문자열에 잘못된 형식 지정 문자가 포함되어 있으면 잘못된 매개 변수 예외를 트리거할 수 있습니다.

참고 항목

스트림 I/O
fprintf, _fprintf_l, fwprintf, _fwprintf_l
printf, _printf_l, wprintf, _wprintf_l
sprintf, _sprintf_l, swprintf, _swprintf_l, __swprintf_l
va_arg, va_copy, va_end, va_start