Compartir a través de


_set_printf_count_output

Compatibilidad de permisos o de deshabilitar la opción de formato de %n en printf, _printf_l, wprintf, _wprintf_l- la familia funciona.

int _set_printf_count_output(
   int enable
);

Parámetros

  • enable
    Un valor distinto de cero para habilitar %n admite, 0 para deshabilitar la compatibilidad de %n .

Valor de propiedad y valor devuelto

El estado de la compatibilidad de %n antes de llamar a esta función: distinto de cero si la compatibilidad de %n está habilitado, 0 si se deshabilitó.

Comentarios

Por motivos de seguridad, compatibilidad con el especificador de formato de %n está deshabilitada de forma predeterminada en printf y todos sus variantes. Si %n se encuentra en una especificación de formato de printf , el comportamiento predeterminado consiste en invocar el controlador no válido del parámetro tal como se describe en Validación de parámetros. La llamada _set_printf_count_output con un argumento distinto producirá printf- funciones de familia para interpretar %n como se describe en printf (Caracteres de campo de tipo).

Requisitos

Rutina

Encabezado necesario

_set_printf_count_output

<stdio.h>

Para obtener información adicional de compatibilidad, vea Compatibilidad en la Introducción.

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 );
}

Resultados

%n support was disabled.
%n support is now enabled.
123456789
i = 5

Equivalente de .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

_get_printf_count_output