Freigeben über


vprintf-Funktionen

Jede der vprintf-Funktionen verwendet einen Zeiger auf eine Argumentliste, anschließend zu Stilen und schreibt die angegebenen Daten einem bestimmten Ziel. Die Funktionen unterscheiden sich in der ausgeführten Parametervalidierung, ob die Funktionen umfassend oder Einzelbyte-Zeichenfolgen, das Ausgabeziel und die Unterstützung für das Angeben der Reihenfolge verwendet, bei der 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-Funktionen bei ihren Entsprechungsfunktionen ähnlich, wie in der folgenden Tabelle aufgeführt. jedoch akzeptiert jede vprintf-Funktion einen Zeiger auf eine Argumentliste, wenn jede der Entsprechungsfunktionen eine Argumentliste akzeptiert.

Diese Funktionen formatieren Daten für Ausgabe in Ziele wie folgt.

Funktion

Entsprechungsfunktion

Ausgabeziel

Parametervalidierung

Positionsgebundener Parameter-Unterstützung

_vcprintf

_cprintf

Konsole

Überprüfung für NULL.

nein

_vcwprintf

_cwprintf

Konsole

Überprüfung für NULL.

nein

vfprintf

fprintf

Stream

Überprüfung für NULL.

nein

vfprintf_p

fprintf_p

Stream

Überprüfung für ungültig und gültiges Format.

ja

vfprintf_s

fprintf_s

Stream

Überprüfung für ungültig und gültiges Format.

nein

vfwprintf

fwprintf

Stream

Überprüfung für NULL.

nein

vfwprintf_p

fwprintf_p

Stream

Überprüfung für ungültig und gültiges Format.

ja

vfwprintf_s

fwprintf_s

Stream

Überprüfung für ungültig und gültiges Format.

nein

vprintf

printf

Stdout

Überprüfung für NULL.

nein

vprintf_p

printf_p

Stdout

Überprüfung für ungültig und gültiges Format.

ja

vprintf_s

wie

Stdout

Überprüfung für ungültig und gültiges Format.

nein

vwprintf

wprintf

Stdout

Überprüfung für NULL.

nein

vwprintf_p

wprintf_p

Stdout

Überprüfung für ungültig und gültiges Format.

ja

vwprintf_s

wprintf_s

Stdout

Überprüfung für ungültig und gültiges Format.

nein

vsprintf

sprintf

Speicher gezeigt auf durch Puffer

Überprüfung für NULL.

nein

vsprintf_p

sprintf_p

Speicher gezeigt auf durch Puffer

Überprüfung für ungültig und gültiges Format.

ja

vsprintf_s

sprintf_s

Speicher gezeigt auf durch Puffer

Überprüfung für ungültig und gültiges Format.

nein

vswprintf

swprintf

Speicher gezeigt auf durch Puffer

Überprüfung für NULL.

nein

vswprintf_p

swprintf_p

Speicher gezeigt auf durch Puffer

Überprüfung für ungültig und gültiges Format.

ja

vswprintf_s

swprintf_s

Speicher gezeigt auf durch Puffer

Überprüfung für ungültig und gültiges Format.

nein

_vscprintf

_vscprintf

Speicher gezeigt auf durch Puffer

Überprüfung für NULL.

nein

_vscwprintf

_vscwprintf

Speicher gezeigt auf durch Puffer

Überprüfung für NULL.

nein

_vsnprintf

_snprintf

Speicher gezeigt auf durch Puffer

Überprüfung für NULL.

nein

_vsnwprintf

_snwprintf

Speicher gezeigt auf durch Puffer

Überprüfung für NULL.

nein

Das Argument argptr ist vom Typ va_list, der in VARARGS.H und in STDARG.H. definiert wird. Die argptr-Variable muss mit va_start, initialisiert und wird durch folgenden Aufrufe va_arg initialisiert werden; argptr zeigt auf den Anfang einer Liste der Argumente, die für die Ausgabe entsprechend der entsprechenden Spezifikation im Formatargument konvertiert und gesendet werden. Format hat die gleiche Form und Funktion wie das Formatargument für printf. Keine dieser Funktionsaufrufe va_end. Eine ausführliche Beschreibung jeder vprintf-Funktion, finden Sie in der Beschreibung der Entsprechungsfunktion, wie in der vorherigen Tabelle aufgeführt.

_vsnprintf unterscheidet sich von vsprintf dahingehend, dass nicht mehr als Zählbytes dem Puffer schreibt.

Die Versionen dieser Funktionen mit dem w Infix im Namen sind Breitzeichenversionen der entsprechenden Funktionen ohne das w Infix; in jedem dieser Breitzeichenfunktionen, sind Puffer und Format Zeichenfolgen mit Breitzeichen. Andernfalls verhält sich jede Breitzeichenfunktion identisch mit der SBCS-Entsprechungsfunktion.

Die Versionen dieser Funktionen mit _s und _p sind die Suffixe höhere Versionen. Diese Versionen überprüfen die Formatzeichenfolgen und werden eine Ausnahme generieren, wenn der Formatzeichenfolge nicht regelkonform ist (beispielsweise, wenn ungültige Formatierungszeichen verwendet werden).

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

Für vsprintf, vswprintf, _vsnprintf und _vsnwprintf wenn das Kopieren zwischen Zeichenfolgen erfolgt, die sich überschneiden, wird das Verhalten undefiniert.

SicherheitshinweisSicherheitshinweis

Stellen Sie sicher, dass benutzerdefinierte Format keine Zeichenfolge ist.Weitere Informationen finden Sie unter Vermeiden von Pufferüberläufen.Wenn sie die sicheren Versionen dieser Funktionen (entweder die _s oder _p Suffixe), könnte eine vom Benutzer bereitgestellte Formatzeichenfolge eine ungültige Parameterausnahme auslösen, wenn die vom Benutzer bereitgestellte Zeichenfolge ungültige Formatierungszeichen 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_copy, va_end, va_start