Partager via


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_lvfwprintf_s, ,_vfwprintf_s_l
vprintf, vwprintf
_vprintf_p, , _vprintf_p_l_vwprintf_p, ,_vwprintf_p_l
vprintf_s, , _vprintf_s_lvwprintf_s, ,_vwprintf_s_l
_vscprintf, , _vscprintf_l_vscwprintf, ,_vscwprintf_l
_vsnprintf, , _vsnwprintfvsprintfvswprintf
_vsprintf_p, , _vsprintf_p_l_vswprintf_p, ,_vswprintf_p_l
vsprintf_s, , _vsprintf_s_lvswprintf_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_lfwprintf, ,_fwprintf_l
printf, , _printf_lwprintf, ,_wprintf_l
sprintf, , _sprintf_lswprintf, , _swprintf_l__swprintf_l
va_arg, , va_copyva_end, ,va_start