vprintf Funktionen

Jede der vprintf-Funktionen akzeptiert einen Zeiger auf eine Argumentliste, den Formaten und schreibt die angegebenen Daten an ein bestimmtes Ziel.Die Funktionen unterscheiden sich in der ausgeführten Parametervalidierung, ob die Features breit oder Einzelbyte-Zeichenfolgen Ziel, das die Ausgabe und die Unterstützung zum Angeben der Reihenfolge akzeptieren, in der die Parameter in der Formatzeichenfolge verwendet werden.

_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

Hinweise

Die vprintf Äquivalents auf ihre Funktionen sind Funktionen, die in der folgenden Tabelle aufgelistet.Dennoch akzeptiert jede vprintf-Funktion einen Zeiger auf eine Argumentliste, wenn die einzelnen Funktionen Äquivalents der eine Argumentliste akzeptiert.

Diese Funktion für Benutzerdaten Zielen für die Ausgabe wie folgt.

Funktion

Feature Äquivalents

Ziel Ausgabe

Parametervalidierung

Positionsgebundener Parameter-Unterstützung

_vcprintf

_cprintf

Konsolenanwendung

Suchen nach NULL.

nein

_vcwprintf

_cwprintf

Konsolenanwendung

Suchen nach NULL.

nein

vfprintf

fprintf

Stream

Suchen nach NULL.

nein

vfprintf_p

fprintf_p

Stream

Prüfen Sie NULL- und gültiges Format.

ja

vfprintf_s

fprintf_s

Stream

Prüfen Sie NULL- und gültiges Format.

nein

vfwprintf

fwprintf

Stream

Suchen nach NULL.

nein

vfwprintf_p

fwprintf_p

Stream

Prüfen Sie NULL- und gültiges Format.

ja

vfwprintf_s

fwprintf_s

Stream

Prüfen Sie NULL- und gültiges Format.

nein

vprintf

printf

Stdout

Suchen nach NULL.

nein

vprintf_p

printf_p

Stdout

Prüfen Sie NULL- und gültiges Format.

ja

vprintf_s

printf_s

Stdout

Prüfen Sie NULL- und gültiges Format.

nein

vwprintf

wprintf

Stdout

Suchen nach NULL.

nein

vwprintf_p

wprintf_p

Stdout

Prüfen Sie NULL- und gültiges Format.

ja

vwprintf_s

wprintf_s

Stdout

Prüfen Sie NULL- und gültiges Format.

nein

vsprintf

sprintf

Arbeitsspeicher dargestellt durch den Puffer

Suchen nach NULL.

nein

vsprintf_p

sprintf_p

Arbeitsspeicher dargestellt durch den Puffer

Prüfen Sie NULL- und gültiges Format.

ja

vsprintf_s

sprintf_s

Arbeitsspeicher dargestellt durch den Puffer

Prüfen Sie NULL- und gültiges Format.

nein

vswprintf

swprintf

Arbeitsspeicher dargestellt durch den Puffer

Suchen nach NULL.

nein

vswprintf_p

swprintf_p

Arbeitsspeicher dargestellt durch den Puffer

Prüfen Sie NULL- und gültiges Format.

ja

vswprintf_s

swprintf_s

Arbeitsspeicher dargestellt durch den Puffer

Prüfen Sie NULL- und gültiges Format.

nein

_vscprintf

_vscprintf

Arbeitsspeicher dargestellt durch den Puffer

Suchen nach NULL.

nein

_vscwprintf

_vscwprintf

Arbeitsspeicher dargestellt durch den Puffer

Suchen nach NULL.

nein

_vsnprintf

_snprintf

Arbeitsspeicher dargestellt durch den Puffer

Suchen nach NULL.

nein

_vsnwprintf

_snwprintf

Arbeitsspeicher dargestellt durch den Puffer

Suchen nach NULL.

nein

Das argptr-Argument ist vom Typ va_list, der in VARARGS.H und STDARG.H. definiert ist.Die argptr-Variable muss durch va_start. initialisiert werden und wird durch das folgende va_arg Aufrufe möglicherweise neu initialisiert. argptr wird dann an den Anfang einer Liste der Argumente, die für die Ausgabe entsprechend den entsprechenden Angaben im Format-Argument konvertiert und übertragen werden.Format hat das gleiche Form und Funktion wie das Format-Argument für printf.Keine dieser Funktion ruft va_end.Für eine vollständige Beschreibung der einzelnen vprintf-Funktion Weitere Informationen finden Sie in der Beschreibung der Funktion Äquivalents, wie in der vorangehenden Tabelle aufgeführt.

_vsnprintf unterscheidet sich von vsprintf dadurch, dass sie nicht mehr als Zählbytesin den Puffergeschrieben wird.

Die Versionen dieser Funktionen mit dem w Infix im Namen sind Breitzeichenversionen der entsprechenden Funktionen ohne das w Infix. Breitzeichen in jeder dieser Funktionen sind Puffer und Formatieren von Zeichenfolgen mit Breitzeichen.Andernfalls verhält sich genauso wie jede Breitzeiche Funktion SBCS-Äquivalents der Funktion.

Die Versionen dieser Funktionen mit _s und _p Suffixen sind die sichereren Versionen.Diese Versionen überprüfen die Formatzeichenfolgen und eine Ausnahme wird generiert, wenn die Formatzeichenfolge nicht wohl geformt ist (z. B. wenn ungültige Zeichen für die Formatierung verwendet werden).

Die Versionen dieser Funktionen mit dem _p Suffix bieten die Möglichkeit, die Reihenfolge anzugeben, in der die angegebenen Argumente in der Formatzeichenfolge ersetzt werden.Weitere Informationen finden Sie unter printf_p positionelle Parameter.

Für vsprintf, vswprintf, _vsnprintf und _vsnwprintfwenn der Kopiervorgang zwischen Zeichenfolgen auftritt, die sich überschneiden, ist das Verhalten nicht definiert.

SicherheitshinweisSicherheitshinweis

Stellen Sie sicher, dass Stil keine benutzerdefinierte Zeichenfolge ist.Weitere Informationen finden Sie unter Vermeiden von Pufferüberläufen.Wenn die sicheren Versionen dieser Funktionen (entweder die _s oder _p Suffixe), könnte eine benutzerdefinierte Formatzeichenfolge eine ungültige Parameter ausnahme starten, wenn die vom Benutzer bereitgestellte Zeichenfolge Formatierung ungültige Zeichen enthält.

Siehe auch

Referenz

Stream E/A

fprintf, _fprintf_l, fwprintf, _fwprintf_l

printf, _printf_l, wprintf, _wprintf_l

sprintf, _sprintf_l, swprintf, _swprintf_l, __swprintf_l

va_arg, va_end, va_start