Funções vprintf

Cada o vprintf funções leva um ponteiro para um argumento listar, e, 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 caractere de byte único, o destino de saída e o suporte para especificar a ordem na qual os parâmetros são usados na seqüência de caractere 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

The vprintf funções são semelhantes às suas funções de contraparte sistema autônomo listados na tabela a seguir. No entanto, cada vprintf função aceita um ponteiro para uma lista de argumentos, enquanto que cada uma das funções representante aceita uma lista de argumentos.

Essas funções formatar dados de saída para destinos sistema autônomo segue.

Função

Função do representante

Destino de saída

Validação de parâmetro

Suporte de parâmetro posicional

_vcprintf

_cprintf

Console

Verifique se há nulo.

não

_vcwprintf

_cwprintf

Console

Verifique se há nulo.

não

vfprintf

fprintf

Fluxo

Verifique se há nulo.

não

vfprintf_p

fprintf_p

Fluxo

Verifique se formato nulo e é válido.

Sim

vfprintf_s

fprintf_s

Fluxo

Verifique se formato nulo e é válido.

não

vfwprintf

fwprintf

Fluxo

Verifique se há nulo.

não

vfwprintf_p

fwprintf_p

Fluxo

Verifique se formato nulo e é válido.

Sim

vfwprintf_s

fwprintf_s

Fluxo

Verifique se formato nulo e é válido.

não

vprintf

printf

Stdout

Verifique se há nulo.

não

vprintf_p

printf_p

Stdout

Verifique se formato nulo e é válido.

Sim

vprintf_s

printf_s

Stdout

Verifique se formato nulo e é válido.

não

vwprintf

wprintf

Stdout

Verifique se há nulo.

não

vwprintf_p

wprintf_p

Stdout

Verifique se formato nulo e é válido.

Sim

vwprintf_s

wprintf_s

Stdout

Verifique se formato nulo e é válido.

não

vsprintf

sprintf

memória apontada por buffer

Verifique se há nulo.

não

vsprintf_p

sprintf_p

memória apontada por buffer

Verifique se formato nulo e é válido.

Sim

vsprintf_s

sprintf_s

memória apontada por buffer

Verifique se formato nulo e é válido.

não

vswprintf

swprintf

memória apontada por buffer

Verifique se há nulo.

não

vswprintf_p

swprintf_p

memória apontada por buffer

Verifique se formato nulo e é válido.

Sim

vswprintf_s

swprintf_s

memória apontada por buffer

Verifique se formato nulo e é válido.

não

_vscprintf

_vscprintf

memória apontada por buffer

Verifique se há nulo.

não

_vscwprintf

_vscwprintf

memória apontada por buffer

Verifique se há nulo.

não

_vsnprintf

_snprintf

memória apontada por buffer

Verifique se há nulo.

não

_vsnwprintf

_snwprintf

memória apontada por buffer

Verifique se há nulo.

não

The argptr argumento tem tipo va_list, que é definido em VARARGS.H e STDARG.H. The argptr variável deve ser inicializado por va_start, e pode ser reinicializada por subseqüentes va_arg chamadas; argptr 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 das formato argumento.formato h sistema autônomo do mesmo formulário e funcione sistema autônomo o formato argumento printf.Nenhuma dessas funções invoca va_end. Para obter uma descrição mais completa de cada vprintf função, consulte a descrição de sua função correspondente, conforme listados na tabela anterior.

_vsnprintf é diferente de vsprintf que grava no máximo Contagem bytes to buffer.

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

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

As versões dessas funções com o _p sufixo oferecer a capacidade de especificar a ordem em que os argumentos fornecidos são substituídos na seqüência de caracteres de formato.For more information, see printf_p posicional parâmetros.

For vsprintf, vswprintf, _vsnprintf e _vsnwprintf, se ocorrer copiando entre cadeias de caracteres que se sobrepõem, o comportamento é indefinido.

Observação de segurança:

Certifique-se de que formato não é uma seqüência de caracteres definida pelo usuário.Para obter mais informações, consulte Evitar saturações de buffer.Se usando as versões seguras dessas funções (ambos o _s or _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 de formatação inválido.

Consulte também

Referência

Fluxo de E/S

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