CS 3733 Operating Systems, Fall 2004 Assignment 3 Comments
General Comments:
- This assignment was graded on a basis of 30 points.
- You must pay attention to your lint warnings.
- In compare_target you should only call check_older once.
- In execute_line if the parent calls makeargv then it
must also free the space created by makeargv.
- Use freemakeargv to free the space created by
makeargv.
You can't just free the argv.
- If exec fails, the child should call exit,
not return. Otherwise there will be two processes returning from
execute_line and reading lines from the makefile.
- When you run lint all files having functions called by the
program must be linted together.
- In wait_for_completion you must return nonzero if any of the
children either do not terminate normally or terminate normally with
an nonzero return value. The correct test to apply to all children looks
something like this:
int ret = 0;
... in a loop:
if (!WIFEXITED(status) || WEXITSTATUS(status))
     ret = 1;
...
return ret;