Assignment 5: Grading Sheet

 

Features

Tested? (Y/N)

single-pipe command

 

Multi-pipe command

 

Pipe command with side effects

 

setenv

 

printall

 

cd

 

hm

 

pwd

 

exit

 

CTRL-C

 

Error cases

Describe (here) each kind of error demonstrated by the test cases. 

 

 

Questions

1. What is the process tree created when processing the command?

cat /usr/dict/words | fgrep cat | head –2

 

2. In the example above, what happens if the ``fgrep'' or ``head'' process finishes before the other processes? It is upto you how early termination of a piped process is handled - simply describe here what happens on early termination. (Check the pipe man page to see what happens when a process tries to read/write a closed pipe descriptor.)

 

3. In the example above, what happens when the user sends the interrupt signal to the (top-level) shell?

 

4. What is the process tree created by the following command?

pwd | cat

 

5. Even though your nutshell does not support I/O redirection of the commands it invokes, the I/O of nutshell can be redirected by the invoking Unix shell. Assuming that the output of nutshell is redirected

nutshell > script

what is the standard output of your shell before, during, and after the execution of the piped command above?

 

6. Does your shell ever need to explicitly close pipe descriptors?

 

7. How does your implementation handle built-in commands in pipes that have side effects?

setenv PRINTER atlw146 | printenv PRINTER

 

 

.