$30
CPSC 3220 Assignment 3
Implementing critical functions for a trivial file system.
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.)