Was this page helpful?
Your feedback about this content is important. Let us know what you think.
Additional feedback?
1500 characters remaining
_vscprintf_p, _vscprintf_p_l, _vscwprintf_p, _vscwprintf_p_l
Collapse the table of content
Expand the table of content

_vscprintf_p, _vscprintf_p_l, _vscwprintf_p, _vscwprintf_p_l

Returns the number of characters in the formatted string using a pointer to a list of arguments, with the ability to specify the order in which the arguments are used.

int _vscprintf_p(
   const char *format,
   va_list argptr 
int _vscprintf_p _l(
   const char *format,
   locale_t locale,
   va_list argptr 
int _vscwprintf_p (
   const wchar_t *format,
   va_list argptr 
int _vscwprintf_p _l(
   const wchar_t *format,
   locale_t locale,
   va_list argptr 


Format-control string.


Pointer to list of arguments.


The locale to use.

For more information, see Format Specifications.

_vscprintf_p returns the number of characters that would be generated if the string pointed to by the list of arguments was printed or sent to a file or buffer using the specified formatting codes. The value returned does not include the terminating null character. _vscwprintf_p performs the same function for wide characters.

These functions differ from _vscprintf and _vscwprintf only in that they support the ability to specify the order in which the arguments are used. For more information, see printf_p Positional Parameters.

The versions of these functions with the _l suffix are identical except that they use the locale parameter passed in instead of the current thread locale.

If format is a null pointer, the invalid parameter handler is invoked, as described in Parameter Validation. If execution is allowed to continue, the functions return -1 and set errno to EINVAL.

Security noteSecurity Note

Ensure that if format is a user-defined string, it is null terminated and has the correct number and type of parameters. For more information, see Avoiding Buffer Overruns.

Generic-Text Routine Mappings

TCHAR.H routine

_UNICODE & _MBCS not defined

_MBCS defined

_UNICODE defined










Required header

_vscprintf_p, _vscprintf_p_l


_vscwprintf_p, _vscwprintf_p_l

<stdio.h> or <wchar.h>

For additional compatibility information, see Compatibility in the Introduction.

See the example for vsprintf.

Community Additions

© 2015 Microsoft