/*- * main.c * * Minishell C source * Show how to use "obtain_order" input interface function * * THIS FILE IS TO BE MODIFIED */ #include /* NULL */ #include /* setbuf, printf */ extern int obtain_order(); /* See parser.y for description */ int main(void) { char ***argvv; int argvc; char **argv; int argc; char *filev[3]; int bg; int ret; setbuf(stdout, NULL); /* Unbuffered */ setbuf(stdin, NULL); while (1) { fprintf(stderr, "%s", "msh> "); /* Prompt */ ret = obtain_order(&argvv, filev, &bg); if (ret == 0) break; /* EOF */ if (ret == -1) continue; /* Syntax error */ argvc = ret - 1; /* Line */ if (argvc == 0) continue; /* Empty line */ /* * LAS LINEAS QUE A CONTINUACION SE PRESENTAN SON SOLO * PARA DAR UNA IDEA DE COMO UTILIZAR LAS ESTRUCTURAS * argvv Y filev. ESTAS LINEAS DEBERAN SER ELIMINADAS. */ for (argvc = 0; (argv = argvv[argvc]); argvc++) { for (argc = 0; argv[argc]; argc++) printf("%s ", argv[argc]); printf("\n"); } if (filev[0]) printf("< %s\n", filev[0]);/* IN */ if (filev[1]) printf("> %s\n", filev[1]);/* OUT */ if (filev[2]) printf(">& %s\n", filev[2]);/* ERR */ if (bg) printf("&\n"); /* * FIN DE LA PARTE A ELIMINAR */ } exit(0); return 0; }