vfprintf, _vfprintf_l, vfwprintf, _vfwprintf_l
Write formatted output using a pointer to a list of arguments. More secure versions of these functions exist; see vfprintf_s, _vfprintf_s_l, vfwprintf_s, _vfwprintf_s_l.
int vfprintf( FILE *stream, const char *format, va_list argptr ); int _vfprintf_l( FILE *stream, const char *format, locale_t locale, va_list argptr ); int vfwprintf( FILE *stream, const wchar_t *format, va_list argptr ); int _vfwprintf_l( FILE *stream, const wchar_t *format, locale_t locale, va_list argptr );
For more information, see Format Specifications.
vfprintf and vfwprintf return the number of characters written, not including the terminating null character, or a negative value if an output error occurs. If either stream or 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.
For information on these and other error codes, see _doserrno, errno, _sys_errlist, and _sys_nerr.
Each of these functions takes a pointer to an argument list, then formats and writes the given data to stream.
vfwprintf is the wide-character version of vfprintf; the two functions behave identically if the stream is opened in ANSI mode. vfprintf doesn't currently support output into a UNICODE stream.
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.
Security Note
|
|---|
|
Ensure that format is not a user-defined string. For more information, see Avoiding Buffer Overruns. |
|
TCHAR.H routine |
_UNICODE & _MBCS not defined |
_MBCS defined |
_UNICODE defined |
|---|---|---|---|
|
_vftprintf |
vfprintf |
vfprintf |
vfwprintf |
|
_vftprintf_l |
_vfprintf_l |
_vfprintf_l |
_vfwprintf_l |
|
Routine |
Required header |
Optional headers |
|---|---|---|
|
vfprintf , _vfprintf_l |
<stdio.h> and <stdarg.h> |
<varargs.h>* |
|
vfwprintf , _vfwprintf_l |
<stdio.h> or <wchar.h>, and <stdarg.h> |
<varargs.h>* |
* Required for UNIX V compatibility.
For additional compatibility information, see Compatibility in the Introduction.
Not applicable. To call the standard C function, use PInvoke. For more information, see Platform Invoke Examples.
Security Note