vprintf işlevleri

İşlevlerin vprintf her biri bir bağımsız değişken listesinin işaretçisini alır, ardından verilen verileri biçimlendirip belirli bir hedefe yazar. İşlevler çeşitli şekillerde farklılık gösterir: parametre doğrulamasında, işlevlerin tek baytlı veya geniş karakter dizeleri alıp almadığı, çıkış hedefi ve sıralama parametrelerini belirtme desteği biçim dizesinde kullanılır.

_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, _vsnwprintfvsprintf, vswprintf
_vsprintf_p, _vsprintf_p_l, _vswprintf_p, _vswprintf_p_l
vsprintf_s, _vsprintf_s_l, vswprintf_s, _vswprintf_s_l

Açıklamalar

vprintf İşlevler, aşağıdaki tabloda listelendiği gibi karşılık gelen işlevlerine benzer. Ancak, her vprintf işlev bir bağımsız değişken listesinin işaretçisini kabul ederken, karşılık gelen işlevlerin her biri bir bağımsız değişken listesini kabul eder.

Bu işlevler, çıkış için verileri aşağıdaki gibi hedeflere biçimlendirmektedir.

İşlev Karşılık gelen işlevi Çıkış hedefi Parametre Doğrulama Konumsal Parametre Desteği
_vcprintf _cprintf console Null olup olmadığını denetleyin. hayır
_vcwprintf _cwprintf console Null olup olmadığını denetleyin. hayır
vfprintf fprintf stream Null olup olmadığını denetleyin. hayır
vfprintf_p fprintf_p stream Null ve geçerli biçimi denetleyin. evet
vfprintf_s fprintf_s stream Null ve geçerli biçimi denetleyin. hayır
vfwprintf fwprintf stream Null olup olmadığını denetleyin. hayır
vfwprintf_p fwprintf_p stream Null ve geçerli biçimi denetleyin. evet
vfwprintf_s fwprintf_s stream Null ve geçerli biçimi denetleyin. hayır
vprintf printf stdout Null olup olmadığını denetleyin. hayır
vprintf_p printf_p stdout Null ve geçerli biçimi denetleyin. evet
vprintf_s printf_s stdout Null ve geçerli biçimi denetleyin. hayır
vwprintf wprintf stdout Null olup olmadığını denetleyin. hayır
vwprintf_p wprintf_p stdout Null ve geçerli biçimi denetleyin. evet
vwprintf_s wprintf_s stdout Null ve geçerli biçimi denetleyin. hayır
vsprintf sprintf ile işaret edilen bellek buffer Null olup olmadığını denetleyin. hayır
vsprintf_p sprintf_p ile işaret edilen bellek buffer Null ve geçerli biçimi denetleyin. evet
vsprintf_s sprintf_s ile işaret edilen bellek buffer Null ve geçerli biçimi denetleyin. hayır
vswprintf swprintf ile işaret edilen bellek buffer Null olup olmadığını denetleyin. hayır
vswprintf_p swprintf_p ile işaret edilen bellek buffer Null ve geçerli biçimi denetleyin. evet
vswprintf_s swprintf_s ile işaret edilen bellek buffer Null ve geçerli biçimi denetleyin. hayır
_vscprintf _vscprintf ile işaret edilen bellek buffer Null olup olmadığını denetleyin. hayır
_vscwprintf _vscwprintf ile işaret edilen bellek buffer Null olup olmadığını denetleyin. hayır
_vsnprintf _snprintf ile işaret edilen bellek buffer Null olup olmadığını denetleyin. hayır
_vsnwprintf _snwprintf ile işaret edilen bellek buffer Null olup olmadığını denetleyin. hayır

argptr Bağımsız değişken, VARARGS'de tanımlanan türüne va_listsahiptir. H ve STDARG.H. Değişkenin argptr va_start tarafından başlatılması gerekir ve sonraki va_arg çağrılar tarafından yeniden başlatılabilir; argptr ardından bağımsız değişkendeki ilgili belirtimlere göre çıkış için dönüştürülen ve iletilen bağımsız değişkenler listesinin format başına işaret eder. format, için printfbağımsız değişkenle aynı forma ve işleve format sahiptir. Bu işlevlerin hiçbiri öğesini çağırmaz va_end. Her vprintf işlevin daha eksiksiz bir açıklaması için önceki tabloda listelenen karşılık gelen işlevinin açıklamasına bakın.

_vsnprintf , 'a bayttan vsprintf count bufferfazla yazmamasından farklıdır.

Bu işlevlerin adında w infix olan sürümleri, karşılık gelen işlevlerin w infix olmadan geniş karakterli sürümleridir; bu geniş karakterli işlevlerin buffer her birinde ve format geniş karakter dizeleridir. Aksi takdirde, her geniş karakterli işlev SBCS karşılık gelen işleviyle aynı şekilde davranır.

Ve sonekleri ile _s _p bu işlevlerin sürümleri daha güvenli sürümlerdir. Bu sürümler biçim dizelerini doğrular. Biçim dizesi iyi biçimlendirilmemişse (örneğin, geçersiz biçimlendirme karakterleri kullanılıyorsa) bir özel durum oluştururlar.

Bu işlevlerin sonekli _p sürümleri, sağlanan bağımsız değişkenlerin biçim dizesiyle değiştirildiği sırayı belirtmenize olanak sağlar. Daha fazla bilgi için bkz . Printf_p Konumsal Parametreler.

, vsprintfvswprintfve _vsnprintf _vsnwprintfiçin, çakışan dizeler arasında kopyalama gerçekleşirse, davranış tanımlanmamıştır.

Önemli

format Kullanıcı tanımlı bir dize olmadığından emin olun. Daha fazla bilgi için bkz . Arabellek taşmalarından kaçınma. Bu işlevlerin güvenli sürümlerini ( _s veya _p sonekleri) kullanıyorsanız, kullanıcı tarafından sağlanan bir biçim dizesi, kullanıcı tarafından sağlanan dize geçersiz biçimlendirme karakterleri içeriyorsa geçersiz bir parametre özel durumu tetikleyebilir.

Ayrıca bkz.

Akış G/Ç
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