Name: Charles Ordog
UID: 7046365527
Professor: Eggert


lab0.c:
This file contains the source for my lab0 program. It copies bytes one by one 
from standard input to standard output. This is in order to be able to read
from stdin buffers that are not static, since we don't know the size of the 
buffer initially. It uses getopt_long in order to read the long options from
the command line, --input=file, --output=file, --segfault, and --catch. If a
file is specified for the input or output options, input/output redirection is
done by closing the corresponding file file descriptor and reopening a new one.
A segfault is caused when asked by attempting to store at a null pointer.

Makefile:
Builds the executable for lab0 with make. Make clean restores the directory to 
it's untar-ed contents. make check tests the executable against a collection 
of test cases. Test cases include seeing if the program catches that it is
trying to write an unwritable file (NoWriteTest), seeing if the program catches
that it is trying to read from an unreadable file (NoReadTest), seeing if basic
input and output work as expected (IOTest), seeing if the catch command catches
the segfault properly (catchTest), and seeing if an input file is specified,
if the output file is the same as the input file (diffTest). make dist 
packages the sepcified tarball.

README:
explains the contents of the directories files.

nullptr.png:
shows the breakpoint stop before the segfault and inspection of the nullptr
to show that it is in fact null

backtrace.png:
screenshot showing the segfault that occurs in gdb and then the corresponding
backtrace to show the cause of the segfault