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
);
Parameters
- stream
-
Pointer to FILE structure.
- format
-
Format specification.
- argptr
-
Pointer to list of arguments.
- locale
-
The locale to use.
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 | Compatibility |
|---|---|---|---|
| vfprintf, _vfprintf_l | <stdio.h> and <stdarg.h> | <varargs.h>* | ANSI, Windows 95, Windows 98, Windows 98 Second Edition, Windows Millennium Edition, Windows NT 4.0, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 |
| vfwprintf, _vfwprintf_l | <stdio.h> or <wchar.h>, and <stdarg.h> | <varargs.h>* | ANSI, Windows 95, Windows 98, Windows 98 Second Edition, Windows Millennium Edition, Windows NT 4.0, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 |
* 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