Project #3 FAQ

Is handling of long file/directory names required?

No long filenames/directories will be given as arguments to the commands you are required to impelement (e.g., open, cd). However, the filesystem may have long filenames within it and your program should still operate correctly in the presence of them. For example, if you output all of the first 11-bytes for each record of a directory as a string for the ls command, then too many and incorrect files/directories will be displayed. So, you may still have to deal with long filenames to properly implement the required commands.

When is the filesystem in inconsistent state?

The filesystem (e.g., image) is considered to be in an inconsistent state when its data structures are not in compliance with the FAT32 specifications. For example, a valid record that does not point to a valid data cluster.

After the completion of any command, all data of the filesystem (e.g., image) must be in compliance with the FAT32 specifications and the expectations of the command as outlined in the project description.

What are the BPB values for the FAT32 image provided on the course page?

BytsPerSec: 512
SecPerClus: 1
RsvdSecCnt: 32
NumFATs: 2
FATSz16: 0
FATSz32: 1009
RootClus: 2
Signature: 43605

Should operations on file/directory names be case-sensitive?

Usage of entry names (of files/directories) given as command arguments should be treated as case-insensitive. For example, an open of Readme.txt should open any file with the same name (e.g., readme.txt) disregarding the case of the letters. Storage of files/directory names should be upper case their corresponding in the record entry. The Microsoft FAT32 specification states that "Lower case characters are not allowed in DIR_Name."