//Add your code here #include #include #include #include #include #include #include #define MAXCOM 1000 // max number of letters to be supported #define MAXLIST 100 // max number of commands to be supported // function to prompt std input void takeStdInput() { char *line = NULL; // buffer to store each line read size_t len = 0; // length of the line read ssize_t read; // number of characters read by getline while(1) { char args[30][30]; // store an array of arguments int argsCounter = 0; // number of arguments // print shell prompt printf("wish> "); // take input while ((read = getline(&line, &len, stdin)) != -1) { // remove newline character from command string if (line[strlen(line) - 1] == '\n') { line[strlen(line) - 1] = '\0'; } char *found = NULL; while ( (found = strsep(&line," ")) != NULL ) { // Skip over any leading space characters while (isspace(*found)) { found++; } // Skip empty tokens if met if (*found == '\0') { continue; } sprintf(args[argsCounter], "%s", found); argsCounter++; free(found); } break; } // check for 'exit' argument for (int i=0; i error if (argc > 2) { char error_message[30] = "An error has occurred\n"; write(STDERR_FILENO, error_message, strlen(error_message)); } // If given one argument -> prompt input else if (argc == 1) { takeStdInput(); } // If given a batch file -> execute commands in file else { takeBatchInput(argv[1]); } return 0; }