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.
Return Value
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.
Remarks
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.
| .gif) Security Note: | 
|---|
| Ensure that format is not a user-defined string. For more information, see Avoiding Buffer Overruns. | 
Generic-Text Routine Mappings
| TCHAR.H routine | _UNICODE & _MBCS not defined | _MBCS defined | _UNICODE defined | 
|---|---|---|---|
| _vftprintf | vfprintf | vfprintf | vfwprintf | 
| _vftprintf_l | _vfprintf_l | _vfprintf_l | _vfwprintf_l | 
Requirements
| 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.
.NET Framework Equivalent
Not applicable. To call the standard C function, use PInvoke. For more information, see Platform Invoke Examples.
See Also
Concepts
fprintf, _fprintf_l, fwprintf, _fwprintf_l
printf, _printf_l, wprintf, _wprintf_l