CS430 Project 1: C Programming

Due Monday, Feb 5

The goal of this assignment is to practice C programming of the sort that is common in operating systems. This project will require use of pointers including function pointers, dynamic memory, and manipulation of bits using shifts. Four files are provided: In order to complete solution.c, define functions for each member of the bundle struct. Then create a bundle struct in the main function, and call the test function giving it a reference to your bundle struct as a parameter. The test function will call each of the functions referred to in the bundle. Messages will be printed by the test function indicating success or failure. Don't modify the test function, but it's a good idea to read through it and understand how the test proceeds.
A valid bundle contains references to three functions: Grading will be based on the degree to which your solution passes the tests in the test function. Each function is worth 1/3 of the assignment points. Full credit will be awarded if your solution passes all tests and works as described above.
The files you will need are contained in a .zip archive here. On Unix-like systems, download the zip file, unpack it using the "unzip" command (unzip p1.zip), enter the "p1" directory, and you can build the program by typing "make". Alternatively, the project will compile with "gcc -std=c99 solution.c tester.c". The project has not been tested with compilers other than gcc, but will probably work with clang at least.
On Isoptera or any other Linux system with wget installed, you can download the project like this:
wget isoptera.lcsc.edu/~seth/cs430/p1.zip