Unix System Calls
Advanced Operating Systems (CS 5500)- Fall 2020
Assignment 1 (60 points)
Due by 14th September (Monday) 11:59pm
You are allowed to discuss the problem and solution design with others, but the code
you submit must be your own. Your solution must include the certification of authenticity
I certify that the code in the method functions including method function main of this
project are entirely my own work.
Unix System Calls
Write a C or C++ program to run on a Unix platform. This program will take three
arguments. The first argument will be the pathname of a directory on the system.
The second argument will be a character string. The third argument is the
maximum number of output lines, N. Your program should display at most N
entries in the directory tree in a text file.
You need to implement three system calls: Open, Read, and Stat
Details of the system calls are given below. You can also use man command
pages to learn more about these system calls.
1. Open system call: DIR *opendir (const char *dirname)
Opendir system call opens a directory and returns a pointer to a struct DIR.
DIR represents a directory stream, which is an ordered sequence of all
directory entries in a particular directory.
2. Read system call: struct dirent *readdir (DIR *dirp)
Once the directory has been opened, you can read the directory with readdir
system call. Each time you call readdir system call, it returns another entry
in the directory.
3. Stat system call: int stat (const char *path, struct stat *sb)
Once you have the name of an entry, you can use the stat system call to get
more information about it. stat function takes two arguments, the first is a
path name and second is a pointer to struct stat, which contains information
about the file.
Submission Guidelines and Requirements
1. You can use either C or C++ for this programming assignment.
2. Your program should run on a UNIX platform
3. Include your name and UCM ID in the code
4. Add the following statement in your solution I certify that the code in the
method functions including method function main of this project are entirely
my own work.
// Your Name
// Your UCM ID
//Certificate of Authenticity: I certify that the code in the method functions
including method function main of this project are entirely my own work.
5. Add comments (about the function/variable/class) to your code as much as
possible
6. Zip your project including source file(s) and input text data files (if any)
7. Upload the zipped project file onto Blackboard
8. Grading standards:
a. Compiles: 40%
b. Prints the correct answer on the directory passed in as an
argument: 20%
c. Prints the correct answer for all subdirectories as well: 20%
d. Handles error conditions gracefully: 10%
e. Is well commended and well designed: 10%
f. There will be automatic 10 points penalty if your program is
missing certificate of authenticity