A simple command shell: part 2
Upload via Moodle as: shell.tar or shell208.c
As usual, you are welcome to work with a partner if you wish.
Goals
- Learn how to use pipes for inter-process communication
- Learn how to handle signals
Rubric
Maximum score: 12 + ε points (with 1 point of extra credit available)
=== Regression testing ===
3 - everything from Part 1 works
=== New features ===
3 - support "command1 | command2" (piping command1's stdout to command2's stdin, including command-line arguments for each command)
2 - support "command < file" (redirecting command's stdin from a file)
1 - if a SIGINT signal is sent to the parent (shell) process, respond by printing
"^C" to stderr and printing the prompt again; to exit the shell, the user should
type "exit"
=== Other ===
3 - code quality
ε - come up with a clever-yet-friendly name for your shell and modify your
prompt accordingly
=== Extra credit ===
1 - support multi-pipe pipelines (you may impose a fixed limit of 7 |'s if that helps)
Your assignment
Add features to your shell208 program that you started in Part 1. See the rubric above for details.
Submitting your work
Submit your program via Moodle as described in Part 1.