Partager via


fonctions de vprintf

Chacune des fonctions d' vprintf prend un pointeur vers une liste d'arguments, puis les formats et écrit les données données à une destination particulière.Les fonctions diffèrent dans la validation des paramètres exécutée, si les fonctions prennent des chaînes à caractères larges ou codées sur un octet, la destination de sortie, et un support pour spécifier 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 d' vprintf sont semblables à leurs fonctions d'homologues comme indiqué dans le tableau suivant.Toutefois, chaque fonction d' vprintf reçoit un pointeur vers une liste d'arguments, alors que chacune des fonctions d'homologues accepte une liste d'arguments.

Ces données de mise en forme des fonctions pour la sortie dans des destinations comme suit.

Fonction

fonction d'homologues

destination de sortie

validation des paramètres

prise en charge de paramètre positionnel

_vcprintf

_cprintf

console

Contrôle pour NULL.

non

_vcwprintf

_cwprintf

console

vérifiez null.

non

vfprintf

fprintf

Stream

Contrôle pour 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 pour 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 pour 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 pour 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 la mémoire tampon

Contrôle pour NULL.

non

vsprintf_p

sprintf_p

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

Contrôle du format null et valide.

oui

vsprintf_s

sprintf_s

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

Contrôle du format null et valide.

non

vswprintf

swprintf

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

Contrôle pour NULL.

non

vswprintf_p

swprintf_p

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

Contrôle du format null et valide.

oui

vswprintf_s

swprintf_s

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

Contrôle du format null et valide.

non

_vscprintf

_vscprintf

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

Contrôle pour NULL.

non

_vscwprintf

_vscwprintf

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

Contrôle pour NULL.

non

_vsnprintf

_snprintf

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

Contrôle pour NULL.

non

_vsnwprintf

_snwprintf

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

Contrôle pour NULL.

non

L'argument d' argptr a le type va_list, défini dans VARARGS.H et STDARG.H.La variable d' argptr doit être initialisée par va_start, et peut être réinitialisée par les appels suivants d' va_arg ; points d' argptr puis au début d'une liste d'arguments qui sont convertis et transmis pour la sortie en fonction de les caractéristiques correspondantes dans l'argument format .le format a le même formulaire et fonction que l'argument de format pour printf.aucune de ces fonctions n'appelle va_end.Pour une description plus complète de chaque fonction d' vprintf , consultez la description de son équivalent fonctionner comme indiqué dans le tableau précédent.

_vsnprintf diffère de vsprintf car il n'entre pas plus que des octets de nombreà la mémoire tampon.

Les versions de ces fonctions avec un infixe de W dans le nom sont des versions à caractères larges les fonctions correspondantes sans infixe de W ; dans chacune de ces fonctions à caractère élargi, la mémoire tampon et le format sont des chaînes à caractères larges.Sinon, chaque fonction à caractère élargi se comporte comme sa fonction d'homologues SBCS.

Les versions de ces fonctions avec _s et les suffixes de _p sont les plus les versions sécurisées.Ces versions valident les chaînes de format et générera une exception si la chaîne de format n'est pas bien formée (par exemple, si les caractères de mise en forme 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 de printf_p.

Pour vsprintf, vswprintf, _vsnprintf et _vsnwprintf, si copier se produit entre les chaînes qui se chevauchent, le comportement n'est pas défini.

Note de sécuritéNote de sécurité

assurez-vous que le 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 des versions sécurisées de ces fonctions (les suffixes de _s ou de _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_end ; va_start