Step 1- Modify the ConvertToC
You will be using execv that requires a char** as an argument. The catch is that the char ** has to be NULL terminated
Please do the following
- allocate an extra “word” for NULL (Hint: tokenCount+1)
- store the value of NULL into the extra “word”
Step 2- Modify the ProcessCommand
You will be emulating a shell. First, the shell checks for specific commands (“shutdown”, “lo”, etc). If it does not recognize those commands then, a fork occurs and the child will execute the command as typed.
The algorithm to implement is as follows (Hint: add code inside the else):
- fork to create a child and parent
- the child will do the following:
- Call the ConverToC function and capture the return into a char** variable
- Call execvp sending it two arguments: the first element (or word) of the char** variable, and the entire array
- Print an error message
- exit
- the parent will do the following:
- wait for the child
- return 1
- don’t forget to handle the error case of the fork