Due Monday, 13 September 2021, 11:59pm
Purpose to explore the most rudimentary properties of the chosen programming language; to deliver software as specified; and to learn to pair-program with your partner.
Delivery Deposit xhead in a directory called B in your repository (master branch). Put all auxiliary files into a sub-directory called Other.
You must be able to run this program at the shell command prompt as ./xhead. Our test harness will run the program as a sub-process, meaning your shell environment does not exist. In our experience, it is best to deliver a shell script that invokes your program, a compiled executable or an interpreted file.
Task Develop xhead, a program that re-directs a command-line-specified number of lines from STDIN to STDOUT. If the given number is larger than the total number of lines from STDIN, then all of STDIN is printed to STDOUT.
The natural number is specified on the command-line of the program prefixed with a dash. If the required command-line argument is missing or malformed, the program prints the word "error" (with quotes) to STDOUT. The program also prints the error message if the command-line contains extraneous material.
$ ls -l / | ./xhead -11
+-------------------- this is the pipe symbol (google "Unix pipe")
(Yes, head exists on *nix OSes. That’s not the point.)