Funções vprintf

Cada um a vprintf funções leva um ponteiro para uma lista de argumentos, em seguida, formata e grava os dados fornecidos para um determinado destino.As funções são diferentes em realizada a validação de parâmetros, se as funções sejam ampla ou seqüências de caracteres de byte único, o destino de saída e o suporte para especificar a ordem em que os parâmetros são usados na seqüência de formato.

_vcprintf, _vcwprintf

vfprintf, vfwprintf

_vfprintf_p, _vfprintf_p_l, _vfwprintf_p, _vfwprintf_p_l

vfprintf_s, _vfprintf_s_l, vfwprintf_s, _vfwprintf_s_l

vprintf, vwprintf

_vprintf_p, _vprintf_p_l, _vwprintf_p, _vwprintf_p_l

vprintf_s, _vprintf_s_l, vwprintf_s, _vwprintf_s_l

vsprintf, vswprintf

_vsprintf_p, _vsprintf_p_l, _vswprintf_p, _vswprintf_p_l

vsprintf_s, _vsprintf_s_l, vswprintf_s, _vswprintf_s_l

_vscprintf, _vscprintf_l, _vscwprintf, _vscwprintf_l

_vsnprintf, _vsnwprintf

Comentários

O vprintf funções são semelhantes às suas funções de contraparte, conforme listado na tabela a seguir.No entanto, cada vprintf função aceita um ponteiro para uma lista de argumentos, ao passo que cada uma das funções contraparte aceita uma lista de argumentos.

Essas funções formatar dados para saída para destinos da seguinte maneira.

Função

Função de contraparte

Destino de saída

Validação de parâmetro

Suporte a parâmetros posicionais

_vcprintf

_cprintf

Console

Verifique se há null.

não

_vcwprintf

_cwprintf

Console

Verifique se há null.

não

vfprintf

fprintf

Fluxo

Verifique se há null.

não

vfprintf_p

fprintf_p

Fluxo

Verifique se há um formato válido e nulo.

Sim

vfprintf_s

fprintf_s

Fluxo

Verifique se há um formato válido e nulo.

não

vfwprintf

fwprintf

Fluxo

Verifique se há null.

não

vfwprintf_p

fwprintf_p

Fluxo

Verifique se há um formato válido e nulo.

Sim

vfwprintf_s

fwprintf_s

Fluxo

Verifique se há um formato válido e nulo.

não

vprintf

printf

Stdout

Verifique se há null.

não

vprintf_p

printf_p

Stdout

Verifique se há um formato válido e nulo.

Sim

vprintf_s

printf_s

Stdout

Verifique se há um formato válido e nulo.

não

vwprintf

wprintf

Stdout

Verifique se há null.

não

vwprintf_p

wprintf_p

Stdout

Verifique se há um formato válido e nulo.

Sim

vwprintf_s

wprintf_s

Stdout

Verifique se há um formato válido e nulo.

não

vsprintf

sprintf

memória apontado por buffer

Verifique se há null.

não

vsprintf_p

sprintf_p

memória apontado por buffer

Verifique se há um formato válido e nulo.

Sim

vsprintf_s

sprintf_s

memória apontado por buffer

Verifique se há um formato válido e nulo.

não

vswprintf

swprintf

memória apontado por buffer

Verifique se há null.

não

vswprintf_p

swprintf_p

memória apontado por buffer

Verifique se há um formato válido e nulo.

Sim

vswprintf_s

swprintf_s

memória apontado por buffer

Verifique se há um formato válido e nulo.

não

_vscprintf

_vscprintf

memória apontado por buffer

Verifique se há null.

não

_vscwprintf

_vscwprintf

memória apontado por buffer

Verifique se há null.

não

_vsnprintf

_snprintf

memória apontado por buffer

Verifique se há null.

não

_vsnwprintf

_snwprintf

memória apontado por buffer

Verifique se há null.

não

O argptr argumento tem o tipo de va_list, que é definido no VARARGS.H e STDARG.H.O argptr a variável deve ser iniciada por va_start, e pode ser reinicializada por subseqüentes va_arg chamadas; argptrem seguida, aponta para o início de uma lista de argumentos que são convertidos e transmitidas a saída de acordo com as especificações correspondentes no formato argumento.formato tem o mesmo formulário e funcionar como o formato argumento para printf.Nenhuma dessas funções chama va_end.Para obter uma descrição mais completa de cada vprintf function, consulte a descrição de sua função correspondente, conforme listado na tabela anterior.

_vsnprintfdifere do vsprintf em que ele grava não mais de contagem bytes para buffer.

As versões dessas funções com o w fixos no nome são versões de caracteres largos das funções correspondentes sem o w infix; em cada uma dessas funções de caractere largo, buffer e formato são seqüências de caracteres largos.Caso contrário, cada função de caractere largo se comporta exatamente a sua função de contraparte SBCS.

As versões dessas funções com _s e _p sufixos são as versões mais seguras.Essas versões validar as seqüências de caracteres de formato e irá gerar uma exceção se a seqüência de caracteres de formato não estiverem bem formada (por exemplo, se inválida de caracteres de formatação é usado).

As versões dessas funções com o _p sufixo fornecem a capacidade de especificar a ordem em que os argumentos fornecidos são substituídos na seqüência de formato.Para obter mais informações, consulte printf_p parâmetros posicional.

Para vsprintf, vswprintf, _vsnprintf e _vsnwprintf, se a cópia acontece entre cadeias de caracteres que se sobrepõem, o comportamento é indefinido.

Observação de segurançaObservação de segurança

Certifique-se de que formato não é uma seqüência definida pelo usuário.Para obter mais informações, consulte Evitando saturações de Buffer.Se usando as versões seguras dessas funções (tanto o _s ou _p sufixos), uma seqüência de caracteres de formato fornecido pelo usuário poderia acionar uma exceção de parâmetro inválido se a seqüência de caracteres fornecida pelo usuário contém caracteres inválidos de formatação.

Consulte também

Referência

Fluxo de i/O

fprintf, _fprintf_l, fwprintf, _fwprintf_l

printf, _printf_l, wprintf, _wprintf_l

sprintf, _sprintf_l, swprintf, _swprintf_l, __swprintf_l

va_arg, va_end, va_start