HW1 Sample Code. There are 3 files: Makefile: used to build an executable. Put the Makefile in the same directory as your source code (and my hw1test.c ) and type 'make hw1test' or 'make l3test' or just 'make' to build both executables. Assuming you have files names l2.c, l3.c, l4.c, and l5.c, your files will be compiled and an executable will be built. hw1test.c: The main program calls layer 5 to send or receive a student record depending on whether it finds command line arguments present. If there are 3 command line arguments the program assumes it is a sender and sends argv[1] as a firstname, argv[2] as the lastname and argv[3] as the id. If no command line arguments are detected, the program tries to read a student_rec using l5_read. If everything works, the reader program will print the record values to STDOUT. Using the sample layer 1 code included, you can run the program as a sender and pipe the output of the program to another copy of the program running as a receiver: > ./hw1 Joe Student 12345 | ./hw1 Name: Joe Student ID: 12345 l3test.c: a sample test program that can be used to test your layer 3 code. This is meant to be an example of how you might go about testing individual layers.