• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

anuskka

Shell

5 mensagens neste tópico

Olá!

Alguem sabe de um exemplo ou como se faz um interpretador de comandos (Shell) em c

preciso de fazer: ler linha de comando, analisar linha de comando e executar linha de comando.

Se me pudessem ajudar agradecia muito :(

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Lês normalmente o comando, depois com o system executas. Também tens a função exec para esses casos mas em princípio o system deve servir para o que queres.

Depois há determinados comando que têm funções específicas para ser executados, sem ter que recorrer ao system, e nesses casos é o melhor que tens a fazer.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Com a função exec a coisa é um bocado mais complicada, pois pipes, redireccionamentos, expressões regulares, ... têm de ser tratados à mão. Depois, comandos como o cd não serve de nada executá-los com o system, nesse caso particular precisas de usar a função chdir.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

O meu prof diz para utilizarmos a primitiva execvp e as funções e as funções strtok_r e  strchr para as strings, mas eu nao sei por onde comecar. podem-me ajudar pff?

obrigada

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

strtok_r nao usei ainda mas usei uma variante dessa (acho eu) era o strtok ou seja utiliza-se esta funcao para ir fazendo o "parser" de cada palavra que se encontrava na linha que tinhamos lido, bem o que tu pretendes deve ser ...

1º  ler uma linha do stdin ou similar

2º  dividir essa linha nas varias strings (tokens)

3º verificar que strings (tokens) sao e que comandos se devem executar

3.1 dependendo do tipo de comandos a executar utilizar varias tecnicas

bem mas acho que ate ao 3.1 tens algum trabalho nao mto mas ja da para ires comecando

boas programacoes e bom ano :D

ps. se tiveres a programar em linux uma boa ajuda e o manual (escrever man man na consola, e o manual do manual :( apartir dai fica mais facil saber como procurar)

ps.2 procura informacoes de como ler do stdin fgets e afins e strtok

com isto acho que ja tens algum trabalho que podes fazer :D

boas programacoes

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora