3511
C/C++ program to create directories and files.
First, create a directory named cs3377, and change current working directory to cs3377.
For this part, for some of the system API calls of which you may use: open, read, write, chdir, mkdir, stat, chmod, link, access, symlink, getcwd, etc. For example, in your program, you use “getcwd” call to find out your current working directory, “chdir” call to change directory, “mkdir” call to create a directory, “open” to create a new file, etc. For time-date format and output
Note. Your program should not use any of “system( … )” calls for this part.
Task#1. Design and implement C/C++ program (a2part1.c or a2part1.cpp, and its executable named a2part1) to create directories and files, and/or to navigate the directories as shown below.
Before and after each call (e.g., to create a file or to create a directory), your program should print a message with a time-stamp (e.g., ” ** created dir1 at 2018.09.29 13:59 **”).
Task#2. After completing Task#1, your program should change its current working directory (to “a2part1”), to display each directory entry information of this directory and its all subdirectories. You should use “readdir” in APUE 4.22 and “stat” in APUE4.2 to display each directory entry information (similar to what “ls -l” command displays).
Task#3. Change the access-attribute of “file2.txt” to “rw- rw- r–” using “chmod” call
Task#4. Open the file “file1.txt” in dir1 for “write” and output the list of directory entries of this directory (“dir1”), and then close the file.
The execution of your program is now terminated.
Task#5. Use “ls -lR” command to show all the directories and files (with detailed file information) of the directory “a2part1” to show that your program ran successfully.
{cslinux1:~/cs3377/a2part1} ls -lR
.:
total 8
drwx–x–x 2 rkm010300 cs 4096 Jan 8 2018 dir1
drwx–x–x 2 rkm010300 cs 4096 Jan 8 2018 dir2
-rw——- 1 rkm010300 cs 0 Jan 8 2018 file1
-rw——- 2 rkm010300 cs 0 Jan 8 2018 link1
./dir1:
total 0
-rw——- 1 rkm010300 cs 0 Jan 8 2018 dir1file1
./dir2:
total 0
-rw——- 2 rkm010300 cs 0 Jan 8 2018 dir2file1
Task#6. Provide Makefile to compile the program to generate its executable, and its session log of the execution.
Attachments:
Assignment2.docx