Professional Documents
Culture Documents
3.2. Directory Processing
3.2. Directory Processing
Topics
• Directory
– Current Path
– Change Path
– List Directory
– Delete Files and Directories
• File (Text & Binary)
– Open File
• File modes
– Read/Write
– Seek
Working with Directories
• Linux Command – mkdir
– pwd , cd , ls , rm – rmdir
– mkdir , rmdir – remove
• System calls used in C/C++ – rename
– getcwd • Links
– chdir – link
– opendir
– symlink
– readdir
– readlink
– closedir
– rewinddir – unlink
Working with Directories
System calls used in C/C++
1. char * getcwd (char *buffer, size_t size)
2. DIR * opendir (const char *dirname)
3. struct dirent * readdir (DIR *dirstream)
4. int closedir (DIR *dirstream)
5. void rewinddir (DIR *dirstream)
6. int remove (const char *filename)
7. int rename (const char *oldname, const char *newname)
8. int mkdir (const char *filename, mode_t mode)
9. int rmdir (const char *filename)
Working with Directories
System calls used in C/C++
#include<stdlib.h>
#include <stdio.h>
#include <stddef.h>
#include <sys/types.h>
#include <dirent.h>
int main(void) Example : Getting Current Path
{
int size = 100 ;
char cwd[100]; // = (char*) malloc(size);
getcwd(cwd,size);
printf("%s\n",cwd);
}
Example : ls - Display directory list
DIR *dp;
struct dirent *ep;
dp = opendir ("./");
if (dp != NULL)
closedir (dp);
}
else puts ("Couldn't open the directory.");
}
Programming Assignment
• Write C/C++ programs for the following shell
commands
– pwd
– cd
– ls show all folders/files in the hierarchal/tree form
– chmod / chown
– mkdir
– rm ( remove all files and subdirectories in the given path)
Files and Their Metadata
#include <sys/types.h>
#include <sys/stat.h>
#include <unistd.h>
Input/Output on Streams
http://www.chemie.fu-berlin.de/chemnet/use/info/libc/libc_7.html