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 
);
Parameters
- format 
 Format-control string.
- argptr 
 Pointer to list of arguments.
- locale 
 The locale to use.
For more information, see Format Specifications.
Return Value
_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.
Remarks
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.
| .gif) Security 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 | 
|---|---|---|---|
| _vsctprintf_p | _vscprintf_p | _vscprintf_p | _vscwprintf_p | 
| _vsctprintf_p_l | _vscprintf_p_l | _vscprintf_p_l | _vscwprintf_p_l | 
Requirements
| Routine | Required header | 
|---|---|
| _vscprintf_p, _vscprintf_p_l | <stdio.h> | 
| _vscwprintf_p, _vscwprintf_p_l | <stdio.h> or <wchar.h> | 
For additional compatibility information, see Compatibility in the Introduction.
Example
See the example for vsprintf.