Nesta aula pretende-se que implemente um programa que mostre uma prompt ao utilizador (por exemplo, 'my_prompt$ '), leia as strings correspondentes aos comandos que o utilizador for invocando, e para cada string lida chame uma função parse para estruturar os argumentos correspondentes ao comando invocado e uma função print_parse para imprimir o conteúdo da estrutura retornada por parse. O programa deve terminar quando o utilizador invocar o comando exit.
Para tal, considere o extracto de código que se segue e complete-o de
acordo com as indicações referidas:
#include <stdio.h>
#include <readline/readline.h>
#include <readline/history.h>
#define MAXARGS 100
typedef struct command {
char *cmd; /* String apenas com o comando */
int argc; /* número de argumentos */
char *argv[MAXARGS+1]; /* Vector de argumentos do comando */
} COMMAND;
COMMAND parse(char *linha);
void print_parse(COMMAND com);
main() {
char *linha;
COMMAND com;
while (1) {
while (strlen(linha = readline("my_prompt$ ")) == 0) {
free(linha); /* Ignora linhas vazias */
}
add_history(linha);
com = parse(linha);
print_parse(com);
free(linha);
}
}
COMMAND parse(char *linha) {
/* ... */
}
void print_parse(COMMAND com) {
/* ... */
}