Sistemas  
 
Rede de conhecimento computador >> Sistemas >> Unix >> Content
Qual é a diferença entre Execl e System no Unix?
Vamos dividir as diferenças entre `Execl` e` System` no Unix:

`Execl` (e suas variantes)

* Objetivo: `Execl` substitui o processo atual por um novo. Ele carrega e executa diretamente o programa especificado, encerrando efetivamente o programa original.
* como funciona:
* Substituição: O processo de chamada é substituído pelo novo processo. Isso significa que não há retorno ao programa original.
* argumentos: `Execl` pega o nome do arquivo executável e uma lista de argumentos como parâmetros. Ele não tem a capacidade de lidar com o redirecionamento padrão de entrada/saída.
* Exemplo:
`` `c
#include
#include

int main () {
execl ("/bin/ls", "ls", "-l", nulo); // Substitua o processo atual por 'ls -l'
// Esta linha não será alcançada
retornar 0;
}
`` `

`System`

* Objetivo: `System` Executa um comando como um processo separado. Ele permite executar comandos de shell do seu programa C.
* como funciona:
* garfo e executivo: `System` usa` fork` para criar um processo filho. Este processo infantil executa o comando usando `Execl`.
* Processos separados: O processo original e o comando recém -executado são executados em processos separados. Isso significa que o processo original pode continuar após o término do comando.
* Entrada/saída: A função `System` fornece uma maneira de gerenciar a entrada, saída e redirecionamento de erros padrão através do shell.
* Exemplo:
`` `c
#include

int main () {
sistema ("ls -l"); // executar 'ls -l' como um processo separado
retornar 0;
}
`` `

Diferenças -chave

* Substituição do processo: `Execl` substitui o processo atual, enquanto o` System` cria um novo processo.
* retornar: `Execl` não retorna ao programa de chamada, enquanto o` System 'retorna após o término do comando executado.
* Integração do shell: `System` fornece acesso aos recursos do shell para redirecionamento e tubos de comando, enquanto o` Execl` executa diretamente um programa.

Quando usar cada função

* `Execl`: Use `Execl` quando deseja substituir completamente o processo atual por outro programa. É adequado para casos em que o programa de chamada não precisa continuar após o início do novo programa.
* `System`: Use `System` quando deseja executar um comando como um processo separado e retenha o controle sobre o programa original. É adequado para cenários em que você precisa executar comandos de shell ou redirecionar a entrada/saída.

Notas adicionais

* Existem outras variantes de `Execl`:` Execv`, `Execlp`,` Execvp`, etc., que diferem na maneira como lidam com argumentos e caminhos de pesquisa.
* Ambos `Execl` e` System` têm implicações de segurança. Se você estiver passando por uma entrada fornecida pelo usuário para essas funções, certifique-se de higienizá-lo para evitar possíveis ataques de injeção de código.

Anterior :

Próximo :
  Os artigos relacionados
·Como recuperar arquivos excluídos da SCO Unix 
·Distinguir entre comandos internos e exunais com exempl…
·Por que o Bell Labs distribuiu de graça todo o trabalh…
·UNIX Scripting 
·O que é terminal em sistema de computador? 
·O que é agendador unix e como funciona? 
·Quais são os diferentes tipos de sistema operacional U…
·Qual é a dificuldade em usar o Unix? 
·Qual é a diferença entre o dedo e quem comanda no Uni…
·Como acessar informações UNIX em sites em um PC 
  Artigos em destaque
·Como desinstalar o serviço de fax 
·Por que o Windows NT substitui o DOS conforme planejado…
·Como restaurar meu computador desktop atalhos 
·Qual é a versão mais recente do Windows NT? 
·Como reparar o Raid Software Linux 
·Como ativar Alternar Chaves 
·Como Fazer um Bootable Windows 98 MS -DOS disquete 
·Como colocar dois ou mais sistemas operacionais em um D…
·Como alterar o proprietário e Registro para IBM Laptop…
·Como Re- gravar meu disco rígido 
Cop e direita © Rede de conhecimento computador https://ptcomputador.com Todos os Direitos Reservados