vfprintf_s, _vfprintf_s_l, vfwprintf_s, _vfwprintf_s_l
Escribe un resultado con formato mediante un puntero a una lista de argumentos. Estas versiones de vfprintf, _vfprintf_l, vfwprintf, _vfwprintf_l tienen mejoras de seguridad, como se describe en Características de seguridad de CRT.
int vfprintf_s(
FILE *stream,
const char *format,
va_list argptr
);
int _vfprintf_s_l(
FILE *stream,
const char *format,
locale_t locale,
va_list argptr
);
int vfwprintf_s(
FILE *stream,
const wchar_t *format,
va_list argptr
);
int _vfwprintf_s_l(
FILE *stream,
const wchar_t *format,
locale_t locale,
va_list argptr
);
Parámetros
stream
Puntero a la estructura FILE.format
Especificación de formato.argptr
Puntero a la lista de argumentos.locale
Configuración regional que se va a usar.
Para obtener más información, vea Especificaciones de formato.
Valor devuelto
vfprintf_s y vfwprintf_s devuelven el número de caracteres escritos, sin incluir el carácter de terminación nulo, o un valor negativo si se produce un error de salida. Si stream o format es un puntero NULL, o si la cadena de formato contiene caracteres de formato no válidos, se invoca el controlador no válido de parámetro, tal y como se describe en Validación de parámetros. Si la ejecución puede continuar, las funciones devuelven -1 y establecen errno en EINVAL.
Para obtener información sobre estos y otros códigos de error, vea _doserrno, errno, _sys_errlist y _sys_nerr.
Comentarios
Cada una de estas funciones toma un puntero a una lista de argumentos y, a continuación, aplica formato a los datos determinados y los escribe en stream.
Estas funciones se diferencian de las versiones de no Secure sólo en que las versiones seguras comprobar que la cadena de format contiene caracteres de formato válidos.
vfwprintf_s es la versión de caracteres anchos de vfprintf_s. Las dos funciones se comportan exactamente igual si el flujo se abre en modo ANSI. vfprintf_s no admite actualmente la salida en un flujo UNICODE.
Las versiones de estas funciones con el sufijo _l son idénticas salvo que usan el parámetro locale pasado en lugar de la configuración regional del subproceso actual.
Nota sobre la seguridad |
---|
Asegúrese de que format no es una cadena definida por el usuario.Para obtener más información, vea Evitar saturaciones del búfer. |
Asignaciones de rutina de texto genérico
Rutina TCHAR.H |
_UNICODE y _MBCS no definidos |
_MBCS definido |
_UNICODE definido |
---|---|---|---|
_vftprintf_s |
vfprintf_s |
vfprintf_s |
vfwprintf_s |
_vftprintf_s_l |
_vfprintf_s_l |
_vfprintf_s_l |
_vfwprintf_s_l |
Requisitos
Rutina |
Encabezado necesario |
Encabezados opcionales |
---|---|---|
vfprintf_s, _vfprintf_s_l |
<stdio.h> y <stdarg.h> |
<varargs.h>* |
vfwprintf_s, _vfwprintf_s_l |
<stdio.h> o <wchar.h>, y <stdarg.h> |
<varargs.h>* |
* Necesario para la compatibilidad con UNIX V.
Para obtener información adicional de compatibilidad, vea Compatibilidad en la Introducción.
Equivalente en .NET Framework
No es aplicable Para llamar a la función estándar de C, use PInvoke. Para obtener más información, vea Ejemplos de invocación de plataforma.
Vea también
Referencia
fprintf, _fprintf_l, fwprintf, _fwprintf_l
printf, _printf_l, wprintf, _wprintf_l