Fonctions vprintf
Chacune des fonctions vprintf prend un pointeur vers une liste d'arguments, puis met en forme et écrit les données fournies vers une destination particulière. Les fonctions diffèrent dans la validation des paramètres exécutée, que les fonctions acceptent les chaînes de caractères larges ou écrites sur un octet, la destination de sortie, et la prise en charge de la spécification de l'ordre dans lequel les paramètres sont utilisés dans la chaîne de format.
Notes
Les fonctions vprintf sont semblables à leurs fonctions d'homologues comme indiqué dans le tableau suivant. Toutefois, chaque fonction vprintf reçoit un pointeur vers une liste d'arguments, alors que chacune des fonctions homologues acceptent une liste d'arguments.
Ces fonctions formatent les données pour la sortie vers les destination comme ce qui suit.
Fonction |
Fonction homologues |
Destination de sortie |
Validation de paramètre |
Prise en charge du paramètre positionnel |
---|---|---|---|---|
_vcprintf |
console |
Contrôle du caractère null. |
non |
|
_vcwprintf |
console |
Contrôle du caractère null. |
non |
|
vfprintf |
Stream |
Contrôle du caractère null. |
non |
|
vfprintf_p |
Stream |
Contrôle du format null et valide. |
oui |
|
vfprintf_s |
Stream |
Contrôle du format null et valide. |
non |
|
vfwprintf |
Stream |
Contrôle du caractère null. |
non |
|
vfwprintf_p |
Stream |
Contrôle du format null et valide. |
oui |
|
vfwprintf_s |
Stream |
Contrôle du format null et valide. |
non |
|
vprintf |
Stdout |
Contrôle du caractère null. |
non |
|
vprintf_p |
Stdout |
Contrôle du format null et valide. |
oui |
|
vprintf_s |
Stdout |
Contrôle du format null et valide. |
non |
|
vwprintf |
Stdout |
Contrôle du caractère null. |
non |
|
vwprintf_p |
Stdout |
Contrôle du format null et valide. |
oui |
|
vwprintf_s |
Stdout |
Contrôle du format null et valide. |
non |
|
vsprintf |
mémoire désignée par mémoire tampon |
Contrôle du caractère null. |
non |
|
vsprintf_p |
mémoire désignée par mémoire tampon |
Contrôle du format null et valide. |
oui |
|
vsprintf_s |
mémoire désignée par mémoire tampon |
Contrôle du format null et valide. |
non |
|
vswprintf |
mémoire désignée par mémoire tampon |
Contrôle du caractère null. |
non |
|
vswprintf_p |
mémoire désignée par mémoire tampon |
Contrôle du format null et valide. |
oui |
|
vswprintf_s |
mémoire désignée par mémoire tampon |
Contrôle du format null et valide. |
non |
|
_vscprintf |
mémoire désignée par mémoire tampon |
Contrôle du caractère null. |
non |
|
_vscwprintf |
mémoire désignée par mémoire tampon |
Contrôle du caractère null. |
non |
|
_vsnprintf |
mémoire désignée par mémoire tampon |
Contrôle du caractère null. |
non |
|
_vsnwprintf |
mémoire désignée par mémoire tampon |
Contrôle du caractère null. |
non |
L'argument argptr est de type va_list, défini dans VARARGS.H et STDARG.H. La variable argptr doit être initialisée par va_start, et peut être réinitialisée par les appels suivants va_arg ; argptr pointe ensuite au début d'une liste d'arguments qui sont convertis et transmis à la sortie en fonction des caractéristiques correspondantes dans l'argument format. format a la même forme et fonction que l'argument format pour printf. Aucune de ces fonctions n'appelle va_end. Pour une description plus complète de chaque fonction vprintf, consultez la description de sa fonction homologue comme indiqué dans le tableau précédent.
_vsnprintf diffère de vsprintf car il n'écrit pas plus que nombre octets dans mémoire tampon.
Les versions de ces fonctions avec l'infixe w dans le nom sont des versions de caractères larges des fonctions correspondantes sans l'infixe w ; dans chacune de ces fonctions de caractères étendus, mémoire tampon et format sont des chaînes de caractères larges. Sinon, chaque fonction de caractères étendus se comporte de manière identique à sa fonction homologues dans SBCS.
Les versions de ces fonctions avec les suffixes _s et _p sont les versions les plus sécurisées. Ces versions valident les chaînes de format et génèrent une exception si la chaîne de format n'est pas correctement formée (par exemple, si des caractères de mise en forme non valides sont utilisés).
Les versions de ces fonctions avec le suffixe _p permettent de spécifier l'ordre dans lequel les arguments fournis sont substitués dans la chaîne de format. Pour plus d'informations, consultez Paramètres positionnels printf_p.
Pour vsprintf, vswprintf, _vsnprintf et _vsnwprintf, si une copie se produit entre des chaînes qui se chevauchent, le comportement est indéfini.
Note de sécurité |
---|
Assurez-vous que format n'est pas une chaîne définie par l'utilisateur.Pour plus d'informations, consultez Solutions contre les dépassements de mémoire tampon.Si vous utilisez les versions sécurisées de ces fonctions (les suffixes _s ou _p ), une chaîne de format fournie par l'utilisateur peut lever une exception de paramètre non valide si la chaîne fournie par l'utilisateur contient des caractères de mise en forme non valides. |
Voir aussi
Référence
fprintf, _fprintf_l, fwprintf, _fwprintf_l
printf, _printf_l, wprintf, _wprintf_l