_set_printf_count_output

Habilite o deshabilite la compatibilidad con el formato %n en printffunciones , _printf_l, wprintf, _wprintf_l-family.

Sintaxis

int _set_printf_count_output(
   int enable
);

Parámetros

enable
Un valor distinto de cero para habilitar la compatibilidad de %n; 0 para deshabilitar la compatibilidad de %n.

Valor de propiedad o valor devuelto

El estado de compatibilidad de %n antes de llamar a esta función: valor distinto de cero si la compatibilidad de %n estaba habilitada o 0 si estaba deshabilitada.

Comentarios

Debido a motivos de seguridad, la compatibilidad con el especificador de formato %n está deshabilitada de forma predeterminada en printf y todas sus variantes. Si se encuentra %n en una printf especificación de formato, el comportamiento predeterminado es invocar el controlador de parámetros no válidos, tal como se describe en Validación de parámetros. Llamar _set_printf_count_output a con un argumento distinto de cero hará que printflas funciones de la familia -interpreten %n como se describe en Sintaxis de especificación de formato: printf y wprintf funciones.

Requisitos

Routine Encabezado necesario
_set_printf_count_output <stdio.h>

Para obtener más información sobre compatibilidad, consulte Compatibilidad.

Ejemplo

// crt_set_printf_count_output.c
#include <stdio.h>

int main()
{
   int e;
   int i;
   e = _set_printf_count_output( 1 );
   printf( "%%n support was %sabled.\n",
        e ? "en" : "dis" );
   printf( "%%n support is now %sabled.\n",
        _get_printf_count_output() ? "en" : "dis" );
   printf( "12345%n6789\n", &i ); // %n format should set i to 5
   printf( "i = %d\n", i );
}
%n support was disabled.
%n support is now enabled.
123456789
i = 5

Consulte también

_get_printf_count_output