vprintf 함수vprintf Functions

이러한 vprintf 함수는 각각 인수 목록에 대한 포인터를 가져오며 지정된 데이터의 형식을 지정하고 특정 대상에 지정된 데이터를 씁니다.Each of the vprintf functions takes a pointer to an argument list, then formats and writes the given data to a particular destination. 이러한 함수는 수행되는 매개 변수 유효성 검사, 함수가 와이드 문자를 사용하는지 또는 싱글바이트 문자열을 사용하는지, 출력 대상 및 형식 문자열에 매개 변수가 사용되는 순서를 지정하는 기능에 대한 지원 측면에서 다릅니다.The functions differ in the parameter validation performed, whether the functions take wide or single-byte character strings, the output destination, and the support for specifying the order in which parameters are used in the format string.

_vcprintf, _vcwprintf_vcprintf, _vcwprintf vfprintf, vfwprintfvfprintf, vfwprintf
_vfprintf_p, _vfprintf_p_l, _vfwprintf_p, _vfwprintf_p_l_vfprintf_p, _vfprintf_p_l, _vfwprintf_p, _vfwprintf_p_l vfprintf_s, _vfprintf_s_l, vfwprintf_s, _vfwprintf_s_lvfprintf_s, _vfprintf_s_l, vfwprintf_s, _vfwprintf_s_l
vprintf, vwprintfvprintf, vwprintf _vprintf_p, _vprintf_p_l, _vwprintf_p, _vwprintf_p_l_vprintf_p, _vprintf_p_l, _vwprintf_p, _vwprintf_p_l
vprintf_s, _vprintf_s_l, vwprintf_s, _vwprintf_s_lvprintf_s, _vprintf_s_l, vwprintf_s, _vwprintf_s_l vsprintf, vswprintfvsprintf, vswprintf
_vsprintf_p, _vsprintf_p_l, _vswprintf_p, _vswprintf_p_l_vsprintf_p, _vsprintf_p_l, _vswprintf_p, _vswprintf_p_l vsprintf_s, _vsprintf_s_l, vswprintf_s, _vswprintf_s_lvsprintf_s, _vsprintf_s_l, vswprintf_s, _vswprintf_s_l
_vscprintf, _vscprintf_l, _vscwprintf, _vscwprintf_l_vscprintf, _vscprintf_l, _vscwprintf, _vscwprintf_l _vsnprintf, _vsnwprintf_vsnprintf, _vsnwprintf

설명Remarks

vprintf 함수는 다음 표에 나열된 상대 함수와 비슷합니다.The vprintf functions are similar to their counterpart functions as listed in the following table. 그러나 각 vprintf 함수는 인수 목록에 대한 포인터를 수락하지만 각 상대 함수는 인수 목록을 수락합니다.However, each vprintf function accepts a pointer to an argument list, whereas each of the counterpart functions accepts an argument list.

이러한 함수는 대상 출력에 대한 데이터 서식을 다음과 같이 지정합니다.These functions format data for output to destinations as follows.

함수Function 상대 함수Counterpart function 출력 대상Output destination 매개 변수 유효성 검사Parameter Validation 위치 매개 변수 지원Positional Parameter Support
_vcprintf _cprintf_cprintf 콘솔console Null인지 확인합니다.Check for null. 아니요no
_vcwprintf _cwprintf_cwprintf 콘솔console Null인지 확인합니다.Check for null. 아니요no
vfprintf fprintffprintf StreamStream Null인지 확인합니다.Check for null. 아니요no
vfprintf_pvfprintf_p fprintf_pfprintf_p StreamStream Null 및 유효한 형식인지 확인합니다.Check for null and valid format. yes
vfprintf_s fprintf_sfprintf_s StreamStream Null 및 유효한 형식인지 확인합니다.Check for null and valid format. 아니요no
vfwprintf fwprintffwprintf StreamStream Null인지 확인합니다.Check for null. 아니요no
vfwprintf_pvfwprintf_p fwprintf_pfwprintf_p StreamStream Null 및 유효한 형식인지 확인합니다.Check for null and valid format. yes
vfwprintf_s fwprintf_sfwprintf_s StreamStream Null 및 유효한 형식인지 확인합니다.Check for null and valid format. 아니요no
vprintf printfprintf Stdout Null인지 확인합니다.Check for null. 아니요no
vprintf_pvprintf_p printf_pprintf_p Stdout Null 및 유효한 형식인지 확인합니다.Check for null and valid format. yes
vprintf_s printf_sprintf_s Stdout Null 및 유효한 형식인지 확인합니다.Check for null and valid format. 아니요no
vwprintf wprintfwprintf Stdout Null인지 확인합니다.Check for null. 아니요no
vwprintf_pvwprintf_p wprintf_pwprintf_p Stdout Null 및 유효한 형식인지 확인합니다.Check for null and valid format. yes
vwprintf_s wprintf_swprintf_s Stdout Null 및 유효한 형식인지 확인합니다.Check for null and valid format. 아니요no
vsprintfvsprintf sprintfsprintf buffer로 가리키는 메모리memory pointed to by buffer Null인지 확인합니다.Check for null. 아니요no
vsprintf_pvsprintf_p sprintf_psprintf_p buffer로 가리키는 메모리memory pointed to by buffer Null 및 유효한 형식인지 확인합니다.Check for null and valid format. yes
vsprintf_s sprintf_ssprintf_s buffer로 가리키는 메모리memory pointed to by buffer Null 및 유효한 형식인지 확인합니다.Check for null and valid format. 아니요no
vswprintf swprintfswprintf buffer로 가리키는 메모리memory pointed to by buffer Null인지 확인합니다.Check for null. 아니요no
vswprintf_pvswprintf_p swprintf_pswprintf_p buffer로 가리키는 메모리memory pointed to by buffer Null 및 유효한 형식인지 확인합니다.Check for null and valid format. yes
vswprintf_s swprintf_sswprintf_s buffer로 가리키는 메모리memory pointed to by buffer Null 및 유효한 형식인지 확인합니다.Check for null and valid format. 아니요no
_vscprintf _vscprintf_vscprintf buffer로 가리키는 메모리memory pointed to by buffer Null인지 확인합니다.Check for null. 아니요no
_vscwprintf _vscwprintf_vscwprintf buffer로 가리키는 메모리memory pointed to by buffer Null인지 확인합니다.Check for null. 아니요no
_vsnprintf _snprintf_snprintf buffer로 가리키는 메모리memory pointed to by buffer Null인지 확인합니다.Check for null. 아니요no
_vsnwprintf _snwprintf_snwprintf buffer로 가리키는 메모리memory pointed to by buffer Null인지 확인합니다.Check for null. nono

argptr 인수 형식은 VARARGS.H 및 STDARG.H에 정의된 va_list입니다.The argptr argument has type va_list, which is defined in VARARGS.H and STDARG.H. argptr 변수는 va_start에 의해 초기화되어야 하고 후속 va_arg 호출로 다시 초기화할 수 있습니다. argptr은 인수 목록의 맨 처음을 가리킵니다. 이러한 인수는 format 인수에 지정된 해당 사양에 따라 출력을 위해 변환 및 전송됩니다.The argptr variable must be initialized by va_start, and may be reinitialized by subsequent va_arg calls; argptr then points to the beginning of a list of arguments that are converted and transmitted for output according to the corresponding specifications in the format argument. formatprintf에 대한 format 인수와 같은 양식 및 함수를 갖습니다.format has the same form and function as the format argument for printf. 이러한 함수는 va_end를 호출하지 않습니다.None of these functions invokes va_end. vprintf 함수에 대한 자세한 설명을 보려면 앞의 표에 나열된 상대 함수에 대한 설명을 참조하세요.For a more complete description of each vprintf function, see the description of its counterpart function as listed in the preceding table.

_vsnprintfcount 바이트만 buffer에 쓴다는 점에서 vsprintf와 다릅니다._vsnprintf differs from vsprintf in that it writes no more than count bytes to buffer.

이름에 w 중위가 있는 이러한 함수의 버전은 w 중위가 없는 해당 함수의 와이드 문자 버전입니다. 이러한 각 와이드 문자 함수에서 bufferformat은 와이드 문자열입니다.The versions of these functions with the w infix in the name are wide-character versions of the corresponding functions without the w infix; in each of these wide-character functions, buffer and format are wide-character strings. 그렇지 않은 경우 각 와이드 문자 함수는 해당 SBCS 상대 함수와 동일하게 동작합니다.Otherwise, each wide-character function behaves identically to its SBCS counterpart function.

_s_p 접미사가 있는 이러한 함수 버전이 좀 더 안전한 버전입니다.The versions of these functions with _s and _p suffixes are the more secure versions. 이러한 버전은 형식 문자열의 유효성을 검사하고 형식 문자열 형식이 잘못되면(예를 들어 잘못된 형식 지정 문자 사용) 예외를 발생합니다.These versions validate the format strings and will generate an exception if the format string is not well formed (for example, if invalid formatting characters are used).

_p 접미사가 있는 이러한 함수 버전은 형식 문자열에서 제공된 인수가 대체되는 순서를 지정하는 기능을 제공합니다.The versions of these functions with the _p suffix provide the ability to specify the order in which the supplied arguments are substituted in the format string. 자세한 내용은 printf_p 위치 매개 변수를 참조하세요.For more information, see printf_p Positional Parameters.

vsprintf, vswprintf, _vsnprintf_vsnwprintf의 경우 중복되는 문자열 간에 복사가 진행되면 이 동작은 정의되지 않습니다.For vsprintf, vswprintf, _vsnprintf and _vsnwprintf, if copying occurs between strings that overlap, the behavior is undefined.

중요

format이 사용자 정의 문자열이 아닌지 확인하세요.Ensure that format is not a user-defined string. 자세한 내용은 버퍼 오버런 방지를 참조하세요.For more information, see Avoiding Buffer Overruns. 이러한 함수의 보안 버전을 사용하는 경우(_s 또는 _p 접미사) 사용자 제공 형식 문자열은 사용자 제공 문자열에 잘못된 형식 지정 문자가 포함되어 있으면 잘못된 매개 변수 예외를 트리거할 수 있습니다.If using the secure versions of these functions (either the _s or _p suffixes), a user-supplied format string could trigger an invalid parameter exception if the user-supplied string contains invalid formatting characters.

참고 항목See Also

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