/* * Exercise 3-8 */ #include #include #include #include #include #include #define MAX 256 #define CMD_MAX 10 char *valid_cmds=" ls ps df cd lo cwd "; int main() { char line_input[MAX], the_cmd[CMD_MAX]; char *new_args[CMD_MAX], *cp; int i; int child_wait_status; while(1) { printf("cmd> "); if(gets(line_input) != NULL) { cp=line_input; i=0; if((new_args[i]=strtok(cp, " ")) != NULL) { sprintf(the_cmd, "%s ", new_args[i]); if((strstr(valid_cmds, the_cmd) - valid_cmds) % 4 == 1) { do { ++i; cp=NULL; new_args[i]=strtok(cp, " "); } while(i