Partilhar via


_execve, _wexecve

Carrega e executa novos processos filho.

Importante

Esta API não pode ser usada em aplicativos executados no Windows Runtime. Para obter mais informações, confira Funções do CRT sem suporte em aplicativos da Plataforma Universal do Windows.

Sintaxe

intptr_t _execve(
   const char *cmdname,
   const char *const *argv,
   const char *const *envp
);
intptr_t _wexecve(
   const wchar_t *cmdname,
   const wchar_t *const *argv,
   const wchar_t *const *envp
);

Parâmetros

cmdname
Caminho do arquivo a ser executado.

argv
Matriz de ponteiros para os parâmetros.

envp
Matriz de ponteiros para as configurações de ambiente.

Valor retornado

Se forem bem-sucedidas, essas funções não retornarão ao processo de chamada. Um valor retornado de -1 indica um erro, caso em que a errno variável global é definida.

errno valor Descrição
E2BIG O espaço necessário para os argumentos e as configurações de ambiente excede 32 KB.
EACCES O arquivo especificado tem uma violação de compartilhamento ou de bloqueio.
EINVAL Parâmetro inválido.
EMFILE Muitos arquivos são abertos (o arquivo especificado deve ser aberto para determinar se ele é executável).
ENOENT Arquivo ou caminho não encontrado.
ENOEXEC O arquivo especificado não é executável ou tem um formato de arquivo executável inválido.
ENOMEM Não há memória suficiente disponível para executar o novo processo; a memória disponível foi corrompida; ou existe um bloco inválido, indicando que o processo de chamada não foi alocado corretamente.

Para obter mais informações sobre esses e outros códigos de retorno, confira errno, _doserrno, _sys_errlist e _sys_nerr.

Comentários

Cada uma dessas funções carrega e executa um novo processo, passando uma matriz de ponteiros para argumentos de linha de comando e uma matriz de ponteiros para as configurações de ambiente.

_execve e _wexecve validam seus parâmetros. Essas funções invocam o manipulador de parâmetro inválido, conforme descrito em Validação de parâmetro, quando:

  • cmdname é um ponteiro nulo,
  • argv é um ponteiro nulo ou ponteiro para uma matriz vazia,
  • A matriz contém uma string vazia como o primeiro argumento.

Se a execução tiver permissão para continuar pelo manipulador, essas funções serão definidas errno como EINVALe retornarão -1. Nenhum processo é inicializado.

Por padrão, o estado global dessa função tem como escopo o aplicativo. Para alterar esse comportamento, confira Estado global no CRT.

Requisitos

Função Cabeçalho necessário Cabeçalho opcional
_execve <processo.h> <errno.h>
_wexecve <process.h> ou <wchar.h> <errno.h>

Para obter informações sobre compatibilidade, consulte Compatibilidade.

Exemplo

Veja o exemplo em _exec, _wexec funções.

Confira também

Controle de processo e ambiente
_exec, _wexec funções
abort
atexit
exit, _Exit, _exit
_onexit, _onexit_m
_spawn, _wspawn funções
system, _wsystem