Compartilhar via


Validação do parâmetro

A maioria das funções de segurança aprimoradas de CRT e de muitas das funções preexistentes valida seus parâmetros. Isso pode incluir verifique os ponteiros para NULL, verificando se os números inteiros caíssem em um intervalo válido, ou verificar se os valores de enumeração é válido. Quando um parâmetro inválido for localizado, o manipulador inválido do parâmetro será executado.

Rotina inválido de manipulador de parâmetro

O comportamento de tempo de execução C quando um parâmetro inválido é encontrado é chamar o manipulador inválido alocado no momento do parâmetro. O parâmetro inválido padrão invoca o relatório de falhas de Watson, o que faz com que o aplicativo falhar e pergunta ao usuário se deseja carregar o despejo de memória a Microsoft para análise. No modo de depuração, um parâmetro inválido também resulta em uma asserção com falha.

Esse comportamento pode ser alterado usando a função _set_invalid_parameter_handler para definir o manipulador inválido do parâmetro à sua própria função. Se a função que você especifica não finaliza o aplicativo, o controle é retornado à função que recebeu os parâmetros inválidos, e essas funções normalmente cessarão a execução, retornam o código de erro e, errno definido como um código de erro. Em muitos casos, o valor de errno e o valor de retorno são ambos EINVAL, indicando um parâmetro inválido. Em alguns casos, um código de erro mais específico for retornado, como EBADF para um ponteiro de arquivo incorreto passado como um parâmetro. Para obter mais informações sobre o errno, consulte errno, _doserrno, _sys_errlist e _sys_nerr.

Consulte também

Referência

Recursos da biblioteca CRT

Conceitos

Recursos de segurança no CRT