Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Use as rotinas de controle de processo para iniciar, parar e gerenciar processos de dentro de um programa. Use as rotinas de controle de ambiente para obter e alterar informações sobre o ambiente do sistema operacional.
Funções de controle de processo e ambiente
| Rotina | Usar |
|---|---|
abort |
Cancelar o processo sem liberar os buffers ou chamar funções registradas por atexit e _onexit |
assert |
Testar se há erro de lógica |
Macros _ASSERT, _ASSERTE |
Similar a assert mas disponível apenas em versões de depuração das bibliotecas de tempo de execução |
atexit |
Agendar rotinas para execução no encerramento do programa |
_beginthread, _beginthreadex |
Criar um novo thread em um processo do sistema operacional Windows |
_cexit |
Executar procedimentos de encerramento exit (como liberar buffers) e depois devolver o controle ao programa de chamada sem encerrar processo |
_c_exit |
Executar procedimentos de encerramento _exit e depois devolver o controle ao programa de chamada sem encerrar processo |
_cwait |
Aguarde até outro processo terminar |
_endthread, _endthreadex |
Encerrar um thread do sistema operacional Windows |
_execl, _wexecl |
Executar o novo processo com a lista de argumentos |
_execle, _wexecle |
Executar o novo processo com a lista de argumentos e o ambiente fornecido |
_execlp, _wexeclp |
Executar o novo processo usando a variável PATH e a lista de argumentos |
_execlpe, _wexeclpe |
Executar o novo processo usando a variável PATH e a lista de argumentos e ambiente fornecidos |
_execv, _wexecv |
Executar o novo processo com uma matriz de argumentos |
_execve, _wexecve |
Executar o novo processo com a matriz de argumentos e o ambiente fornecido |
_execvp, _wexecvp |
Executar o novo processo usando a variável PATH e a matriz de argumentos |
_execvpe, _wexecvpe |
Executar o novo processo usando a variável PATH, a lista de argumentos e o ambiente fornecidos |
exit |
Chamar funções registradas por atexit e _onexit, liberar todos os buffers, fechar todos os arquivos abertos e encerrar processo |
_exit |
Encerrar processo imediatamente sem chamar atexit ou _onexit ou liberar buffers |
getenv, _wgetenv, getenv_s, _wgetenv_s |
Obter o valor da variável do ambiente |
_getpid |
Obter o número de identificação do processo |
longjmp |
Restaurar o ambiente de pilha salvo; usá-lo para executar um goto não local |
_onexit |
Agendar rotinas para execução no encerramento do programa; usar para compatibilidade com a versão 7.0 do Microsoft C/C++ e versões anteriores |
_pclose |
Aguardar um novo processador de comando e fechar o fluxo no pipe associado |
perror, _wperror |
Imprimir mensagem de erro |
_pipe |
Criar um pipe para leitura e gravação |
_popen, _wpopen |
Criar pipe e executar o comando |
_putenv, _wputenv, _putenv_s, _wputenv_s |
Adicionar ou alterar o valor da variável de ambiente |
raise |
Enviar um sinal para o processo de chamada |
setjmp |
Salvar o ambiente da pilha. usar para executar goto não local |
signal |
Lidar com o sinal de interrupção |
_spawnl, _wspawnl |
Criar e executar o novo processo com a lista de argumentos especificados |
_spawnle, _wspawnle |
Criar e executar o novo processo com a lista de argumentos e o ambiente especificados |
_spawnlp, _wspawnlp |
Criar e executar o novo processo usando a variável PATH e a lista de argumentos especificada |
_spawnlpe, _wspawnlpe |
Criar e executar o novo processo usando a variável PATH, o ambiente especificado e a lista de argumentos |
_spawnv, _wspawnv |
Criar e executar o novo processo com a matriz de argumentos especificada |
_spawnve, _wspawnve |
Criar e executar o novo processo com a matriz de argumentos e o ambiente especificados |
_spawnvp, _wspawnvp |
Criar e executar o novo processo usando a variável PATH e a matriz de argumentos especificada |
_spawnvpe, _wspawnvpe |
Criar e executar o novo processo usando a variável PATH, o ambiente especificado e a matriz de argumentos |
system, _wsystem |
Executar o comando do sistema operacional |
No sistema operacional Windows, o processo gerado é equivalente ao processo de geração. Qualquer processo pode usar _cwait para aguardar outro processo para o qual a ID do processo é conhecida.
A diferença entre as famílias _exec e _spawn é que uma função _spawn pode retornar o controle do novo processo para o processo de chamada. Em uma função _spawn, o processo de chamada e o novo processo estão presentes na memória, a menos que _P_OVERLAY seja especificado. Em uma _exec função, o novo processo se sobrepõe ao processo de chamada, portanto, o controle não pode retornar ao processo de chamada, a menos que ocorra um erro na tentativa de iniciar a execução do novo processo.
As diferenças entre as funções nas _exec famílias e _spawn envolvem o método de localização do arquivo a ser executado como o novo processo, a forma na qual os argumentos são passados para o novo processo e o método de configuração do ambiente, conforme mostrado na tabela a seguir. Use uma função que passa uma lista de argumentos quando o número de argumentos for constante ou conhecido no momento da compilação. Use uma função que passa um ponteiro para uma matriz contendo os argumentos quando o número de argumentos for determinado no tempo de execução. As informações na tabela a seguir também se aplicam aos equivalentes de caractere largo das funções _spawn e _exec.
Famílias de funções _spawn e _exec
| Funções | Use a variável PATH para localizar o arquivo |
Convenção de passagem de argumentos | Configurações do ambiente |
|---|---|---|---|
_execl, _spawnl |
Não | Lista | Herdado do processo de chamada |
_execle, _spawnle |
Não | Lista | Ponteiro para a tabela de ambientes para o novo processo passado como o último argumento |
_execlp, _spawnlp |
Sim | Lista | Herdado do processo de chamada |
_execvpe, _spawnvpe |
Sim | Array | Ponteiro para a tabela de ambientes para o novo processo passado como o último argumento |
_execlpe, _spawnlpe |
Sim | Lista | Ponteiro para a tabela de ambientes para o novo processo passado como o último argumento |
_execv, _spawnv |
Não | Array | Herdado do processo de chamada |
_execve, _spawnve |
Não | Array | Ponteiro para a tabela de ambientes para o novo processo passado como o último argumento |
_execvp, _spawnvp |
Sim | Array | Herdado do processo de chamada |