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.
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 |
Konsole |
Überprüfung für NULL. |
nein |
|
_vcwprintf |
Konsole |
Überprüfung für NULL. |
nein |
|
vfprintf |
Stream |
Überprüfung für NULL. |
nein |
|
vfprintf_p |
Stream |
Überprüfung für ungültig und gültiges Format. |
ja |
|
vfprintf_s |
Stream |
Überprüfung für ungültig und gültiges Format. |
nein |
|
vfwprintf |
Stream |
Überprüfung für NULL. |
nein |
|
vfwprintf_p |
Stream |
Überprüfung für ungültig und gültiges Format. |
ja |
|
vfwprintf_s |
Stream |
Überprüfung für ungültig und gültiges Format. |
nein |
|
vprintf |
Stdout |
Überprüfung für NULL. |
nein |
|
vprintf_p |
Stdout |
Überprüfung für ungültig und gültiges Format. |
ja |
|
vprintf_s |
Stdout |
Überprüfung für ungültig und gültiges Format. |
nein |
|
vwprintf |
Stdout |
Überprüfung für NULL. |
nein |
|
vwprintf_p |
Stdout |
Überprüfung für ungültig und gültiges Format. |
ja |
|
vwprintf_s |
Stdout |
Überprüfung für ungültig und gültiges Format. |
nein |
|
vsprintf |
Speicher gezeigt auf durch Puffer |
Überprüfung für NULL. |
nein |
|
vsprintf_p |
Speicher gezeigt auf durch Puffer |
Überprüfung für ungültig und gültiges Format. |
ja |
|
vsprintf_s |
Speicher gezeigt auf durch Puffer |
Überprüfung für ungültig und gültiges Format. |
nein |
|
vswprintf |
Speicher gezeigt auf durch Puffer |
Überprüfung für NULL. |
nein |
|
vswprintf_p |
Speicher gezeigt auf durch Puffer |
Überprüfung für ungültig und gültiges Format. |
ja |
|
vswprintf_s |
Speicher gezeigt auf durch Puffer |
Überprüfung für ungültig und gültiges Format. |
nein |
|
_vscprintf |
Speicher gezeigt auf durch Puffer |
Überprüfung für NULL. |
nein |
|
_vscwprintf |
Speicher gezeigt auf durch Puffer |
Überprüfung für NULL. |
nein |
|
_vsnprintf |
Speicher gezeigt auf durch Puffer |
Überprüfung für NULL. |
nein |
|
_vsnwprintf |
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.
Sicherheitshinweis |
---|
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
fprintf, _fprintf_l, fwprintf, _fwprintf_l
printf, _printf_l, wprintf, _wprintf_l