$24
Problem Statement
In this assignment you will implement the tfs_delete(), tfs_read(), and tfs_write() functions for a trivial file system. These functions delete a file in the trivial file system, read a buffer of bytes from an existing file in the trivial file system, and write a buffer of bytes to an existing file in the trivial file system, respectively. Please remember to add read block and write block as the only way to access file blocks.
You will find more details about the file system in the header file tfs.h. The file tfs_1.c is the first part of the implementation of helper functions and public functions. The file tfs_2.c is a skeleton file in which you will provide the implementation of the three functions. The tfs_2.c file has header comments that specify the functions that you will provide. The file tfs_driver1.c is an example of a test driver for the tfs_1.c and tfs_2.c code. The link to the archive with these files is available on Canvas in the assignment description.
The only file you will need to submit to canvas (without compressing it) is "tfs_2.c". Do not submit any other source files or headers. I will compile my tfs.h header, my tfs_1.c source file, and my test driver file with your tfs_2.c source file to create a program to test. Your code must run on the School of Computing servers (e.g., the ada or babbage machines).
NB: This seems like a simple assignment, but you will need to spend some time understanding the structure and implementation of the existing code. This is a big part of the assignment. After you understand what is going on and how different files interoperate, then you will be able to make additions to the code. Please make a plan and start right away. With the deadline close to the end of the semester, there will not be time for assignment extension.
Grading
10% Quality of code, indentation, formatting, comments 30% tfs_delete() implementation
30% tfs_read() implementation
30% tfs_write() implementation
Note: a corrupted submission or a submission that does not compile will receive 0 points. Please recompile after making the last moment changes to make sure it still works.
Guidelines
The entire code (except the parts that were provided) should be written by yourself.
You may discuss the project requirements and the concepts with me or with anyone in the class.
However, you should not send code to anyone or receive code from anyone, whether by email, printed listings, photos, visual display on a computer/laptop/cell-phone/etc. screen, or any other method of communication.
Do not post the assignment, or a request for help, or your code on any web sites.
The key idea is that you shouldn't short-circuit the learning process for others once you know the answer. (And you shouldn't burden anyone else with inappropriate requests for code or "answers" and thus short-circuit your own learning process.)