exec () e system () chamadas do sistema

3

Eu entendo que, enquanto exec () não retorna depois que ele executa no Unix, system () pode ou não retornar dependendo da situação.Mas alguém pode explicar por que a chamada do sistema exec () não retorna e também as diferenças entre exec () e system () no sistema operacional Unix

    
por Soumajyoti 30.10.2012 / 15:08

2 respostas

5

system () é equivalente a fork () + exec () + wait (); Isso significa que quando um processo executa a função system (), ele cria um novo processo e aguarda o fim desse processo. O novo processo executa o comando em seu próprio ambiente, quando ele termina, o chamador recebe o sinal filho.

Para mais informações man exec man system

"exec substitui a imagem do processo atual por uma nova imagem do processo", isso significa que quando ela sai, o chamador sai também quando o chamador se tornou o novo processo.

    
por 30.10.2012 / 15:40
0

Esta é uma chamada de sistema no sistema operacional Unix que substitui o processo atualmente em execução por uma informação do programa binário.

    
por 18.02.2013 / 07:17