Funções vprintf
Cada uma das funções de vprintf usa um ponteiro para uma lista de argumentos, então em formatos e grava os dados dados para um destino específico. As funções difere na validação de parâmetro executada, se as funções usam largura ou cadeias de caracteres de um byte, o destino de saída, e o suporte para especificar a ordem em que os parâmetros são usados na cadeia de caracteres de formato.
Comentários
As funções de vprintf são semelhantes às funções de contraparte como listado na tabela a seguir. No entanto, cada função de vprintf aceita um ponteiro para uma lista de argumentos, enquanto cada uma das funções de contraparte aceita uma lista de argumentos.
Essas funções formatar dados para saída aos destinos da seguinte maneira.
Função |
Função de contraparte |
Destino de saída |
Validação de parâmetro |
Suporte de parâmetro posicional |
---|---|---|---|---|
_vcprintf |
console |
Verificação do zero. |
não |
|
_vcwprintf |
console |
Verificação do zero. |
não |
|
vfprintf |
Fluxo |
Verificação do zero. |
não |
|
vfprintf_p |
Fluxo |
Verificação para o formato nulo e é válida. |
sim |
|
vfprintf_s |
Fluxo |
Verificação para o formato nulo e é válida. |
não |
|
vfwprintf |
Fluxo |
Verificação do zero. |
não |
|
vfwprintf_p |
Fluxo |
Verificação para o formato nulo e é válida. |
sim |
|
vfwprintf_s |
Fluxo |
Verificação para o formato nulo e é válida. |
não |
|
vprintf |
Stdout |
Verificação do zero. |
não |
|
vprintf_p |
Stdout |
Verificação para o formato nulo e é válida. |
sim |
|
vprintf_s |
Stdout |
Verificação para o formato nulo e é válida. |
não |
|
vwprintf |
Stdout |
Verificação do zero. |
não |
|
vwprintf_p |
Stdout |
Verificação para o formato nulo e é válida. |
sim |
|
vwprintf_s |
Stdout |
Verificação para o formato nulo e é válida. |
não |
|
vsprintf |
memória apontada pelo buffer |
Verificação do zero. |
não |
|
vsprintf_p |
memória apontada pelo buffer |
Verificação para o formato nulo e é válida. |
sim |
|
vsprintf_s |
memória apontada pelo buffer |
Verificação para o formato nulo e é válida. |
não |
|
vswprintf |
memória apontada pelo buffer |
Verificação do zero. |
não |
|
vswprintf_p |
memória apontada pelo buffer |
Verificação para o formato nulo e é válida. |
sim |
|
vswprintf_s |
memória apontada pelo buffer |
Verificação para o formato nulo e é válida. |
não |
|
_vscprintf |
memória apontada pelo buffer |
Verificação do zero. |
não |
|
_vscwprintf |
memória apontada pelo buffer |
Verificação do zero. |
não |
|
_vsnprintf |
memória apontada pelo buffer |
Verificação do zero. |
não |
|
_vsnwprintf |
memória apontada pelo buffer |
Verificação do zero. |
não |
O argumento de argptr tem o tipo va_list, que é definido em VARARGS.H e em. STDARG.H. A variável de argptr deve ser inicializado por va_start, e pode ser reinicializado por chamadas subsequentes de va_arg ; pontos de argptr no início de uma lista de argumentos que são convertidos e passados para saída de acordo com as especificações correspondentes no argumento de formato . o formato tem o mesmo formulário e função que o argumento de formato para printf. Nenhuma dessas funções invoca va_end. Para obter uma descrição mais completo de cada função de vprintf , consulte a descrição de suas contrapartes funcionar como listado na tabela acima.
_vsnprintf difere de vsprintf que grava não mais do que bytes de contagem no buffer.
As versões dessas funções com o infixo de w no nome são versões ampla de caracteres das funções correspondentes sem o infixo de w ; em cada uma dessas funções ampla de caracteres, o buffer e o formato são cadeias de caracteres de ampla caractere. Se não, cada função ampla de caracteres se comporta idêntica à função de contraparte de SBCS.
As versões dessas funções com _s e sufixos do _p são mais seguros versões. Essas versões validará as cadeias de formato e gerarão uma exceção se a cadeia de caracteres de formato não é boa formada (por exemplo, se os caracteres de formatação inválidos são usados).
As versões dessas funções com o sufixo de _p fornecem a capacidade de especificar a ordem em que os argumentos fornecidos são substituídos na cadeia de caracteres de formato. Para obter mais informações, consulte Parâmetros posicionais printf_p.
Para vsprintf, vswprintf, _vsnprintf e _vsnwprintf, se copiar ocorre entre as cadeias de caracteres que sobrepõem, o comportamento será indefinido.
Observação de segurança |
---|
Verifique se o formato não seja uma cadeia de caracteres definida pelo usuário.Para obter mais informações, consulte Evitando saturações de buffer.Se usar as versões seguro dessas funções (sufixos de _s ou de _p ), uma cadeia de formato fornecida pelo usuário pode disparar uma exceção inválido do parâmetro se a cadeia de caracteres fornecida por contém caracteres de formatação inválidos. |
Consulte também
Referência
fprintf, _fprintf_l, fwprintf, _fwprintf_l
printf, _printf_l, wprintf, _wprintf_l