_spawnvp, _wspawnvp

Cria e executa um processo.

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 _spawnvp(
   int mode,
   const char *cmdname,
   const char *const *argv
);
intptr_t _wspawnvp(
   int mode,
   const wchar_t *cmdname,
   const wchar_t *const *argv
);

Parâmetros

mode
Modo de execução para chamar o processo.

cmdname
Caminho do arquivo a ser executado.

argv
Matriz de ponteiros para os argumentos. O argumento argv[0] geralmente é um ponteiro para um caminho no modo real ou para o nome do programa no modo protegido, e argv[1] através argv[n] são ponteiros para as cadeias de caracteres que formam a nova lista de argumentos. O argumento argv[n+1] precisa ser um ponteiro NULL para marcar o fim da lista de argumentos.

Retornar valor

O valor retornado de uma _spawnvp ou _wspawnvp síncrona (_P_WAIT especificado para mode) é o status de saída do novo processo. O valor retornado de uma _spawnvp ou _wspawnvp assíncrona (_P_NOWAIT ou _P_NOWAITO especificado para mode) é o identificador do processo. O status de saída é 0 se o processo foi encerrado normalmente. Você poderá definir o status de saída para um valor diferente de zero se o processo gerado usar especificamente um argumento diferente de zero para chamar a rotina exit. Se o novo processo não definiu explicitamente um status de saída positivo, um status de saída positivo indica uma saída anormal com uma interrupção ou uma interrupção. Um valor de retorno de -1 indica um erro (o novo processo não foi iniciado). Nesse caso, o parâmetro errno é definido com um dos valores a seguir:

Valor Descrição
E2BIG A lista de argumentos ultrapassa 1.024 bytes.
EINVAL O argumento mode é inválido.
ENOENT Arquivo ou caminho não encontrado.
ENOEXEC O arquivo especificado não é executável ou tem formato de arquivo executável inválido.
ENOMEM Não há memória suficiente disponível para executar o novo processo.

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

Comentários

Cada uma dessas funções cria e executa um novo processo, passa uma matriz de ponteiros para argumentos de linha de comando e usa a variável de ambiente PATH para localizar o arquivo a ser executado.

Essas funções validam seus parâmetros. Se ou cmdnameargv for um ponteiro nulo, ou se argv apontar para ponteiro nulo, ou argv[0] for uma cadeia de caracteres vazia, o manipulador de parâmetros inválido será chamado, conforme descrito em Validação de parâmetro. Se a execução puder continuar, essas funções definirão errno como EINVAL e retornarão -1. Nenhum processo novo é gerado.

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

Requisitos

Rotina Cabeçalho necessário
_spawnvp <stdio.h> ou <process.h>
_wspawnvp <stdio.h> ou <wchar.h>

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

Exemplo

Veja o exemplo em _spawn, _wspawn functions.

Confira também

Controle de processos e ambientes
_spawn, _wspawn funções
abort
atexit
_exec, _wexec funções
exit, _Exit, _exit
_flushall
_getmbcp
_onexit, _onexit_m
_setmbcp
system, _wsystem