Todos os fork (), exec () e system () podem estar errados? [fechadas]

0

Eu entendo por que poderia ser menor que a melhor prática se eu escrever código C que executa comandos shell chamando system() e que é melhor usar exec e fork , mas um programador C muito experiente me disse que É errado fazer um shell com bifurcações e execuções, mas ele nunca respondeu o porquê. Você pode me dizer? Eu poderia ter entendido mal pelo meu código para o meu novo shell personalizado usa fork e exec para executar um pipeline que eu posso inserir em um prompt.

Ele quis dizer que o melhor shell também implementa os programas a partir de /bin ? Eu cito o programador C experiente, mas não entendo por que ele me disse isso.

having C code which forks & pipes several programs inside your shell is IMHO quite wrong.

    
por Niklas Rosencrantz 01.05.2016 / 05:26

1 resposta

2

As duas principais razões para executar um programa diretamente sem chamar o shell são:

  • Desempenho: a maioria dos programas que você chamaria de seu programa em C provavelmente é muito menor que o shell, o que os faz começar muito mais rapidamente.
  • Controle de ambiente: lidar com uma camada adicional de variáveis de ambiente para lidar pode ser mais complexo para configurar e solucionar problemas.
por 01.05.2016 / 05:32