Partager via


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.

_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

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

_cprintf

console

Contrôle du caractère null.

non

_vcwprintf

_cwprintf

console

Contrôle du caractère null.

non

vfprintf

fprintf

Stream

Contrôle du caractère null.

non

vfprintf_p

fprintf_p

Stream

Contrôle du format null et valide.

oui

vfprintf_s

fprintf_s

Stream

Contrôle du format null et valide.

non

vfwprintf

fwprintf

Stream

Contrôle du caractère null.

non

vfwprintf_p

fwprintf_p

Stream

Contrôle du format null et valide.

oui

vfwprintf_s

fwprintf_s

Stream

Contrôle du format null et valide.

non

vprintf

printf

Stdout

Contrôle du caractère null.

non

vprintf_p

printf_p

Stdout

Contrôle du format null et valide.

oui

vprintf_s

printf_s

Stdout

Contrôle du format null et valide.

non

vwprintf

wprintf

Stdout

Contrôle du caractère null.

non

vwprintf_p

wprintf_p

Stdout

Contrôle du format null et valide.

oui

vwprintf_s

wprintf_s

Stdout

Contrôle du format null et valide.

non

vsprintf

sprintf

mémoire désignée par mémoire tampon

Contrôle du caractère null.

non

vsprintf_p

sprintf_p

mémoire désignée par mémoire tampon

Contrôle du format null et valide.

oui

vsprintf_s

sprintf_s

mémoire désignée par mémoire tampon

Contrôle du format null et valide.

non

vswprintf

swprintf

mémoire désignée par mémoire tampon

Contrôle du caractère null.

non

vswprintf_p

swprintf_p

mémoire désignée par mémoire tampon

Contrôle du format null et valide.

oui

vswprintf_s

swprintf_s

mémoire désignée par mémoire tampon

Contrôle du format null et valide.

non

_vscprintf

_vscprintf

mémoire désignée par mémoire tampon

Contrôle du caractère null.

non

_vscwprintf

_vscwprintf

mémoire désignée par mémoire tampon

Contrôle du caractère null.

non

_vsnprintf

_snprintf

mémoire désignée par mémoire tampon

Contrôle du caractère null.

non

_vsnwprintf

_snwprintf

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é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

E/S de flux

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