Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Phermitheus

Criação de um interpretador simples em C

Recommended Posts

Boas tardes Galera,

 

Tenho um trabalho de faculdade para fazer da cadeira de Sistemas Operacionais que é o seguinte:

 

[2] 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 redirecionamento de entrada “<” e saída “>”,

utilização de pipes “|” e execução em plano de fundo “&”.

programa deve operar num ciclo contínuo com os seguintes passos:

(i) Imprimir uma “prompt” constituída pelos caracteres “>>”;

(ii) Aceitar do utilizador um comando com opções/argumentos e executá-lo;

(iii) Terminada a execução do comando ou ocorrido um erro, voltar a (i).

 

Se alguem me poder dar alguma sugestão, é que estou a zeros nisto.

 

Abraços

CF

Compartilhar este post


Link para o post
Compartilhar em outros sites

Título editado:

Programa em C http://forum.imasters.com.br/public/style_emoticons/default/seta.gif Criação de um interpretador simples em C

 

------------------------

 

Cara, você está a zero mesmo nisso?

Vou te dar uma luz:

 

vamos começar do começo.

Se é pra usar fork(); e exec(); eu julgo que você vai ter que ter um executável para cada comando cadastrado....

Na verdade, o seu shell não fará nada. Apenas lerá um input, executará o programa daquele input, com os devidos argumentos e mostrará os resultados.

 

Vamos imaginar um exemplo:

//Vamos imaginar que todos os programas estão no caminho "path" do shell.

>> ls -a -color=always
//o seu shell executará %path%/ls com os argumentos "-a" e "-color=always".
//como foi que nós separamos as coisas?? pelos espaços! cof cof strtok(); cof cof... :P :P

todo_output_do_comando

>>

Ok, quando você tiver a parte que cuidará da sintaxe pronta, ja estamos quase lá!

 

de uma lida nisso, vai te ajudar

http://www.yolinux.com/TUTORIALS/ForkExecProcesses.html

http://www.csl.mtu.edu/cs4411/www/NOTES/pr...ork/create.html

 

http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Se tiver mais dúvidas poste ai, junto com um pouco de código de preferência.

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.