fonctionsvprintf
Chacune de ces fonctions vprintf
prend un pointeur désignant une liste d’arguments, puis met en forme et écrit les données fournies dans une destination particulière. Les fonctions diffèrent de plusieurs façons : dans la validation des paramètres, que les fonctions prennent des chaînes à caractères simples ou larges, la destination de sortie et la prise en charge de la spécification des paramètres d’ordre sont utilisées 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
_vscprintf
, , _vscprintf_l
_vscwprintf
, ,_vscwprintf_l
_vsnprintf
, , _vsnwprintf
vsprintf
vswprintf
_vsprintf_p
, , _vsprintf_p_l
_vswprintf_p
, ,_vswprintf_p_l
vsprintf_s
, , _vsprintf_s_l
vswprintf_s
, ,_vswprintf_s_l
Notes
Les fonctions vprintf
sont semblables à leurs fonctions équivalentes, comme indiqué dans le tableau suivant. Toutefois, chaque fonction vprintf
accepte un pointeur vers une liste d’arguments, alors que chacune de ces fonctions équivalentes accepte une liste d’arguments.
Ces fonctions mettent en forme les données pour la sortie vers les destinations, comme suit.
Fonction | Fonction équivalente | Destination de sortie | Validation des paramètres | Prise en charge des paramètres positionnels |
---|---|---|---|---|
_vcprintf |
_cprintf |
console | Rechercher la valeur null. | non |
_vcwprintf |
_cwprintf |
console | Rechercher la valeur null. | non |
vfprintf |
fprintf |
stream |
Rechercher la valeur null. | non |
vfprintf_p |
fprintf_p |
stream |
Rechercher valeur null et format valide. | Oui |
vfprintf_s |
fprintf_s |
stream |
Rechercher valeur null et format valide. | non |
vfwprintf |
fwprintf |
stream |
Rechercher la valeur null. | non |
vfwprintf_p |
fwprintf_p |
stream |
Rechercher valeur null et format valide. | Oui |
vfwprintf_s |
fwprintf_s |
stream |
Rechercher valeur null et format valide. | non |
vprintf |
printf |
stdout |
Rechercher la valeur null. | non |
vprintf_p |
printf_p |
stdout |
Rechercher valeur null et format valide. | Oui |
vprintf_s |
printf_s |
stdout |
Rechercher valeur null et format valide. | non |
vwprintf |
wprintf |
stdout |
Rechercher la valeur null. | non |
vwprintf_p |
wprintf_p |
stdout |
Rechercher valeur null et format valide. | Oui |
vwprintf_s |
wprintf_s |
stdout |
Rechercher valeur null et format valide. | non |
vsprintf |
sprintf |
mémoire pointée par buffer |
Rechercher la valeur null. | non |
vsprintf_p |
sprintf_p |
mémoire pointée par buffer |
Rechercher valeur null et format valide. | Oui |
vsprintf_s |
sprintf_s |
mémoire pointée par buffer |
Rechercher valeur null et format valide. | non |
vswprintf |
swprintf |
mémoire pointée par buffer |
Rechercher la valeur null. | non |
vswprintf_p |
swprintf_p |
mémoire pointée par buffer |
Rechercher valeur null et format valide. | Oui |
vswprintf_s |
swprintf_s |
mémoire pointée par buffer |
Rechercher valeur null et format valide. | non |
_vscprintf |
_vscprintf |
mémoire pointée par buffer |
Rechercher la valeur null. | non |
_vscwprintf |
_vscwprintf |
mémoire pointée par buffer |
Rechercher la valeur null. | non |
_vsnprintf |
_snprintf |
mémoire pointée par buffer |
Rechercher la valeur null. | non |
_vsnwprintf |
_snwprintf |
mémoire pointée par buffer |
Rechercher la valeur null. | non |
L’argument argptr
est de type va_list
, qui est défini dans les VARARGS.H et STDARG.H. La argptr
variable doit être initialisée par va_start et peut être réinitialisée par les appels suivants va_arg
. argptr
Elle pointe ensuite vers le début d’une liste d’arguments convertis et transmis pour la sortie en fonction des spécifications correspondantes de l’argument format
. format
a la même forme et la même fonction que l’argument format
pour printf
. Aucune de ces fonctions n’appelle va_end
. Pour obtenir une description plus complète de chaque fonction vprintf
, consultez la description de sa fonction équivalente, comme dans le tableau précédent.
_vsnprintf
diffère de vsprintf
celui dans lequel il écrit pas plus d’octets count
dans buffer
.
Les versions de ces fonctions avec l’infix w dans le nom sont des versions à caractères larges des fonctions correspondantes sans l’infix w ; dans chacune de ces fonctions à caractères larges et buffer
format
sont des chaînes à caractères larges. Dans le cas contraire, chaque fonction à caractères larges a un comportement identique à sa fonction SBCS équivalente.
Les versions de ces fonctions avec _s
et _p
suffixes sont les versions plus sécurisées. Ces versions valident les chaînes de format. Ils génèrent une exception si la chaîne de format n’est pas bien formée (par exemple, si des caractères de mise en forme non valides sont utilisés).
Les versions de ces fonctions avec le _p
suffixe vous 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 , et _vsnwprintf
, si la copie se produit entre des chaînes qui se chevauchent, le comportement n’est pas défini.
Important
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 (le _s
ou _p
les suffixes), une chaîne de format fournie par l’utilisateur peut déclencher 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
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