Sistemas  
 
Rede de conhecimento computador >> Sistemas >> Unix >> Content
Quando uma chamada para Exec retorna no Unix?
No Unix, uma chamada para `Exec` nunca retorna se for bem -sucedido. Aqui está o porquê:

* Substituição, não execução: `Exec` não * executa * um novo programa no sentido tradicional. Ele * substitui * a imagem do processo atual pela imagem do novo programa. Isso significa que o processo original desaparece essencialmente, e o novo programa toma seu lugar.

* Transferência de controle direto: A chamada do sistema `Ex 'transfere diretamente o controle para o novo programa sem retornar ao chamador. É como se o processo original fosse "trocado" para o novo.

Exemplo:

`` `c
#include

int main () {
// tentam substituir o processo atual por "ls -l"
if (execlp ("ls", "ls", "-l", null) ==-1) {
// só chega a isso se o Execlp falhar
Perror ("Execlp falhou");
retornar 1;
}
// Esta linha nunca será alcançada
printf ("Isso nunca será impresso. \ n");
retornar 0;
}
`` `

Por que `Exec` é útil

* Eficiência: Evita a sobrecarga de criar um novo processo e gerenciar seu espaço de memória.
* Controle direto: Fornece um mecanismo para um processo para fazer a transição perfeita para outro programa.

Pontos -chave

* `Exec` variantes (` Execl`, `Execv`,` Execlp`, `Execvp`) têm o mesmo comportamento em termos de valores de retorno.
* Se `Exec` falhar (por exemplo, arquivo não encontrado, problemas de permissão), ele retorna` -1` e define `errno` para indicar o erro.
* Para fazer com que um programa execute outro e continue, você precisa usar o `fork` para criar um processo filho antes de ligar para o` Exec` na criança.

Deixe -me saber se você tiver outras perguntas sobre `Exec` ou processos no Unix!

Anterior :

Próximo : No
  Os artigos relacionados
·Como incrementar um contador em um Unix Shell Script 
·Como fazer o download um sistema operacional Unix 
·Como eliminar permissão negada mensagens no UNIX 
·Estrutura do arquivo de um Sistema Operacional Unix 
·Como descompactar um arquivo tar.gz Unix 
·Como calcular a data em Unix 
·Por que o UNIX é amigável do programador e não amigá…
·Como aprender Unix Online 
·No Unix, para onde a saída padrão geralmente é direc…
·Como instalar o SCO Unix 5.0.5 
  Artigos em destaque
·Como descobrir a senha de inicialização do computador…
·Como desativar o Windows Me Restauração do Sistema 
·Como editar música no Windows Movie Maker 
·Como acelerar a inicialização do computador Up 
·DIY janela exterior persianas que são baratos 
·Como mudar o seu sistema Nome da Pasta 
·Como configurar o DHCP no ICS 
·Como remover Comandos miniporta virtual 
·Como faço para instalar o Java no Unbuntu 
·Como você lê arquivos pz no Unix? 
Cop e direita © Rede de conhecimento computador https://ptcomputador.com Todos os Direitos Reservados