Answered step by step
Verified Expert Solution
Question
1 Approved Answer
In this assignment, you will write a simple UNIX shell that accepts user commands and then executes each command in a separate process. It is
In this assignment, you will write a simple UNIX shell that accepts user commands and then executes each command in a separate process. It is based on programming project in chapter of the textbook. A starter skeleton program "prog.cpp and Makefile are provided. Type make to build the executable prog and type prog to run it
Read on the course website for more details and submission instructions. Complete all the required features and remove "TODO"s from the source code. It's OK to add additional helper functions but don't change the file name.
Assignment : Simple UNIX Shell
@file pcbtable.h
@author TODO: your name
@brief This is the main function of a simple UNIX Shell. You may add additional functions in this file for your implementation
@version
You must complete the all parts marked as "TODO". Delete "TODO" after you are done.
Remember to add sufficient and clear comments to your code
#include
#include
#include
#include
#include
#include
#include
using namespace std;
#define MAXLINE 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 parsecommandchar 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 mainint argc, char argv
char commandMAXLINE; the command that was entered
char argsMAXLINE ; hold parsed out command line arguments
int shouldrun ; flag to determine when to exit program
TODO: Add additional variables for the implementation.
while shouldrun
printfosh;
fflushstdout;
Read the input command
fgetscommand MAXLINE, stdin;
Parse the input command
int numargs parsecommandcommand args;
TODO: Add your code for the implementation
After reading user input, the steps are:
fork a child process using fork
the child process will invoke execvp
parent will invoke wait unless command included &
return ;
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