Compartilhar via


_spawnlpe, _wspawnlpe

Cria e executa um novo processo.

Importante

Não é possível usar essa API em aplicativos executados no Tempo de Execução do Windows.Para obter mais informações, consulte Funções CRT sem suporte pelo /ZW.

intptr_t _spawnlpe(
   int mode,
   const char *cmdname,
   const char *arg0,
   const char *arg1,
   ... const char *argn,
   NULL,
   const char *const *envp 
);
intptr_t _wspawnlpe(
   int mode,
   const wchar_t *cmdname,
   const wchar_t *arg0,
   const wchar_t *arg1,
   ... const wchar_t *argn,
   NULL,
   const wchar_t *const *envp 
);

Parâmetros

  • mode
    Modo de execução para o processo de chamada.

  • cmdname
    Caminho do arquivo a ser executado.

  • arg0, arg1, ... argn
    Lista dos ponteiros dos argumentos. O argumento de arg0 normalmente é um ponteiro para cmdname. Os argumentos arg1 com argn são ponteiros em cadeias de caracteres que formam a nova lista de argumentos. Depois de argn, deve haver um ponteiro de NULL para marcar o fim da lista de argumentos.

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

Valor de retorno

O valor de retorno de um _spawnlpe síncrono ou _wspawnlpe (_P_WAIT especificado para mode) é o status de saída do novo processo. O valor de retorno de um _spawnlpe assíncrono ou _wspawnlpe (_P_NOWAIT ou _P_NOWAITO especificado para mode) é o identificador de processo. O status de saída será 0 se o processo foi encerrado normalmente. Você pode definir o status de saída como um valor diferente de zero se o processo gerado usa especificamente um argumento diferente de zero para chamar a rotina de 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 causada por um anular ou por uma interrupção. Um valor de retorno de – 1 indica um erro (o novo processo não é iniciado). Nesse caso, errno é definido para um dos valores a seguir.

  • E2BIG
    A lista de argumento excede 1024 bytes.

  • EINVAL
    O argumento mode é inválido.

  • ENOENT
    Arquivo ou caminho não encontrado.

  • ENOEXEC
    O arquivo especificado não for executável não tenha um formato de arquivo executável inválido.

  • ENOMEM
    Memória insuficiente disponível para executar o novo processo.

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

Comentários

Cada uma dessas funções cria e executa um novo processo, passa cada argumento de linha de comando como um parâmetro separado, e passe uma matriz de ponteiros para as configurações de ambiente. Essas funções usam a variável de ambiente PATH para localizar o arquivo a ser executado.

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

Requisitos

Rotina

Cabeçalho necessário

_spawnlpe

<process.h>

_wspawnlpe

<stdio.h> ou <wchar.h>

Para obter mais informações de compatibilidade, consulte Compatibilidade.

Exemplo

Consulte o exemplo em Funções _spawn, _wspawn.

Equivalência do .NET Framework

Consulte também

Referência

Processo e controle de ambiente

Funções _spawn, _wspawn

abort

atexit

Funções _exec, _wexec

exit, _exit

_flushall

_getmbcp

_onexit, _onexit_m

_setmbcp

system, _wsystem