Question: First, create a directory named cs3377, and change current working directory to cs3377. For this part, you may review APUE Chapter 3 and Chapter 4

First, create a directory named cs3377, and change current working directory to cs3377.

For this part, you may review APUE Chapter 3 and Chapter 4 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, see APUE 6.10. For softlink (create and read), see APUE book 4.18.

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.

First, create a directory named cs3377, and change current working directory to

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 (in APUE 4.9).

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.

This is y directory which is our current a2part1 (in cs3377) dir2 file3.txt link1 dirl filel.txt dirl1 file2.txt file11.txt This is y directory which is our current a2part1 (in cs3377) dir2 file3.txt link1 dirl filel.txt dirl1 file2.txt file11.txt

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Databases Questions!