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.
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 |
Console |
Verifique se há null. |
não |
|
_vcwprintf |
Console |
Verifique se há null. |
não |
|
vfprintf |
Fluxo |
Verifique se há null. |
não |
|
vfprintf_p |
Fluxo |
Verifique se há um formato válido e nulo. |
Sim |
|
vfprintf_s |
Fluxo |
Verifique se há um formato válido e nulo. |
não |
|
vfwprintf |
Fluxo |
Verifique se há null. |
não |
|
vfwprintf_p |
Fluxo |
Verifique se há um formato válido e nulo. |
Sim |
|
vfwprintf_s |
Fluxo |
Verifique se há um formato válido e nulo. |
não |
|
vprintf |
Stdout |
Verifique se há null. |
não |
|
vprintf_p |
Stdout |
Verifique se há um formato válido e nulo. |
Sim |
|
vprintf_s |
Stdout |
Verifique se há um formato válido e nulo. |
não |
|
vwprintf |
Stdout |
Verifique se há null. |
não |
|
vwprintf_p |
Stdout |
Verifique se há um formato válido e nulo. |
Sim |
|
vwprintf_s |
Stdout |
Verifique se há um formato válido e nulo. |
não |
|
vsprintf |
memória apontado por buffer |
Verifique se há null. |
não |
|
vsprintf_p |
memória apontado por buffer |
Verifique se há um formato válido e nulo. |
Sim |
|
vsprintf_s |
memória apontado por buffer |
Verifique se há um formato válido e nulo. |
não |
|
vswprintf |
memória apontado por buffer |
Verifique se há null. |
não |
|
vswprintf_p |
memória apontado por buffer |
Verifique se há um formato válido e nulo. |
Sim |
|
vswprintf_s |
memória apontado por buffer |
Verifique se há um formato válido e nulo. |
não |
|
_vscprintf |
memória apontado por buffer |
Verifique se há null. |
não |
|
_vscwprintf |
memória apontado por buffer |
Verifique se há null. |
não |
|
_vsnprintf |
memória apontado por buffer |
Verifique se há null. |
não |
|
_vsnwprintf |
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ç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
fprintf, _fprintf_l, fwprintf, _fwprintf_l
printf, _printf_l, wprintf, _wprintf_l