다음을 통해 공유


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
_vscprintf, _vscprintf_l, _vscwprintf_vscwprintf_l
_vsnprintf, , _vsnwprintfvsprintfvswprintf
_vsprintf_p, _vsprintf_p_l, _vswprintf_p_vswprintf_p_l
vsprintf_s, _vsprintf_s_l, vswprintf_s_vswprintf_s_l

설명

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

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

함수 상대 함수 출력 대상 매개 변수 유효성 검사 위치 매개 변수 지원
_vcprintf _cprintf console Null인지 확인합니다. 아니요
_vcwprintf _cwprintf console 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인지 확인합니다. 아니요

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

_vsnprintfvsprintf 바이트 buffer이하 count 를 씁니다.

이름에 w 접두사를 사용하는 이러한 함수의 버전은 w 접두사 없이 해당 함수의 와이드 문자 버전이며format, buffer 이러한 각 와이드 문자 함수에서 와이드 문자 문자열입니다. 그렇지 않은 경우 각 와이드 문자 함수는 해당 SBCS 상대 함수와 동일하게 동작합니다.

이러한 함수와 _p 접미사가 있는 _s 버전은 더 안전한 버전입니다. 이러한 버전은 형식 문자열의 유효성을 검사합니다. 형식 문자열이 잘 구성되지 않은 경우(예: 잘못된 서식 문자를 사용하는 경우) 예외를 생성합니다.

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

에 대해 vsprintf, _vsnprintf vswprintf_vsnwprintf겹치는 문자열 간에 복사가 발생하면 동작이 정의되지 않습니다.

Important

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_endva_start