Boas tardes pessoal, tenho um trabalho de programação que é o seguinte:´
Escreva um programa em linguagem C baseado nas funções fork() + exec () que simule um interpretador de comandos (shell) simples. Por simples entende-se que aceita e executa um único comando de cada vez, possivelmente com opções/argumentos (ex. ls-al/bin), mas não suporta redireccionamento de entrada “<” e saída “>”, utilização de pipes “|” e execução em plano de fundo “&”.
O programa deve operar num ciclo contínuo com os seguintes passos:
• Imprimir uma “prompt” constituída pelos caracteres “>>”;
• Aceitar do utilizador um comando com opções/argumentos e executa-lo;
• Terminada a execução do comando ou ocorrido um erro, voltar a (i)
No caso de ter ocorrido um erro (por exemplo devido a comando inexistente) e o comando não tiver sido executado, deve ser imprimida uma mensagem de erro. No caso especial do utilizador dar o comando “terminar”, o programa deve terminar regressando à shell original. O programa deve ser dimensionado para aceitar um comando com até 80 caracteres e 20 opções/argumentos.
Pondere quais as funções e bibliotecas de sistema/biblioteca que vai utilizar no programa e consulte as respectivas man pages para se informar dos detalhes de funcionamento de cada uma.
Estou a zeros nisto, se alguém me poder dar umas dicas agradecia.
Abraços
CF