CS 355 - Systems Programming Lab 5 - implementing ls
Objective: write a program that can print the names of files in the current directory.
- Write a C program myls1 whose behavior resembles that of the system command ls. myls1 must accept the following parameters:
$ myls1 [-ars] [directory]
If myls1 is provided with no parameters, it lists the names of all files in the current directory, one file name per line.
directory specifies the name of a directory, in which case myls1 lists the names of files within that directory.
-a switch forces myls1 to display the names of hidden files (whose names start with a "."). In the absence of this switch, hidden files are not listed.
-s switch sorts the filenames in the lexicographical order.
-r switch sorts the filenames in the reverse lexicographical order.
Hint: consider using an array of strings to store the list of file names and then sorting it using qsort().
Test myls1 using the files archived in this ZIP file, which contains several nested directories (named dirA, dirB, and dirA1, each with a number of short text files (named file*.txt). Use the following test cases when running myls1 from the directory at the same level with dirA and dirB:
$ myls1
$ myls1 -a
$ myls1 -s dirA
$ myls1 -a dirB
$ myls1 -r dirA/dirA1
$ myls1 dirB/dirB1
- A single C source code file with your work.
- Several screenshots (in PNG or JPG format) showing the results of executing the test cases listed above on a Linux terminal.