Question
#define MAX_LINE 80 // The maximum length command /** * @brief parse out the command and arguments from the input command separated by spaces *
#define MAX_LINE 80 // The maximum length command
/** * @brief parse out the command and arguments from the input command separated by spaces * * @param command * @param args * @return int */ int parse_command(char command[], char *args[]) { // TODO: implement this function }
// TODO: Add additional functions if you need
/** * @brief The main function of a simple UNIX Shell. You may add additional functions in this file for your implementation * @param argc The number of arguments * @param argv The array of arguments * @return The exit status of the program */ int main(int argc, char *argv[]) { char command[MAX_LINE]; // the command that was entered char *args[MAX_LINE / 2 + 1]; // parsed out command line arguments int should_run = 1; /* flag to determine when to exit program */
// TODO: Add additional variables for the implementation.
while (should_run) { printf("osh>"); fflush(stdout); // Read the input command fgets(command, MAX_LINE, stdin); // Parse the input command int num_args = parse_command(command, args);
// TODO: Add your code for the implementation /** * After reading user input, the steps are: * (1) fork a child process using fork() * (2) the child process will invoke execvp() * (3) parent will invoke wait() unless command included & */ } return 0; }
Step by Step Solution
There are 3 Steps involved in it
Step: 1
Get Instant Access to Expert-Tailored Solutions
See step-by-step solutions with expert insights and AI powered tools for academic success
Step: 2
Step: 3
Ace Your Homework with AI
Get the answers you need in no time with our AI-driven, step-by-step assistance
Get Started