Presentation is loading. Please wait.

Presentation is loading. Please wait.

Directory Directory is a file containing list of entries,where each entry represents inode number and name of the file stored in that directory.

Similar presentations


Presentation on theme: "Directory Directory is a file containing list of entries,where each entry represents inode number and name of the file stored in that directory."— Presentation transcript:

1 Directory Directory is a file containing list of entries,where each entry represents inode number and name of the file stored in that directory

2 Directory operations are performed using the following Directory API
mkdir opendir readdir closedir rewinddir telldir seekdir rmdir chdir getcwd

3 MKDIR Purpose: to create directory files #include<sys/stat.h>
#include<unistd.h> int mkdir(const char* path_name,mode_t mode) Here: The path_name argument is the path name of a directory file to be created. The mode arguments specifies the access permission for the owner,group,and others to be assigned to the file. (Note: Mode values is modified by the calling process umask) The Return value of mkdir is 0 if it success or -1 if it fails

4 OPENDIR Purpose: Opens a directory file for read-only #include<sys/types.h> #include<dirent.h> DIR* opendir(const char* path_name) Here: The Path_name argument is the path name of a directory file to be opened. The function returns a DIR* file handler. The DIR data structure is defined in the <dirent.h> header if it success or returns NULL if it fails

5 READDIR Purpose: reads the next directory record from a directory file referenced by the argument . The argument values is the DIR* return value from an opendir call. #include<sys/types.h> #include<dirent.h> struct dirent* readdir(DIR* f_dir) The function returns the address of a struct dirent if it success or NULL if it fails

6 CLOSEDIR Purpose: Closes a directory file referenced by f_dir #include<sys/types.h> #include<dirent.h> int closedir(DIR* f_dir) The function returns 0 if it success or -1 if it fails

7 REWINDDIR Purpose: Resets the file pointer to the beginning of the directory file referenced by f_dir #include<sys/stat.h> #include<dirent.h> void rewinddir(DIR* f_dir)

8 TELLDIR Purpose: returns the current location associated with the specified directory stream. #include<sys/types.h> #include<dirent.h> long int telldir(DIR *DirectoryPointer)

9 SEEKDIR Purpose: Changes the file pointer of a given f_dir to a specified address. #include<sys/types.h> #include<dirent.h> void seekdir(DIR *DirectoryPointer, long Location)

10 RMDIR Purpose: removes the directory specified by the path_name parameter #include<unistd.h> int rmdir(const char* path_name) The function returns 0 if it success or -1 if it fails

11 CHDIR Purpose: changes the current directory to the directory indicated by the Path parameter. #include<unistd.h> int chdir(const char* path) The function returns 0 if it success or -1 if it fails

12 GETCWD Purpose: places the absolute path name of the current working directory in the array pointed to by the Buffer parameter, and returns that path name. The size parameter specifies the size in bytes of the character array pointed to by the Buffer parameter. #include <unistd.h> char *getcwd ( char*Buffer,size_t size) If the getcwd subroutine is unsuccessful, a null value is returned.

13 The dirent structure contains the following fields for each directory entry: ulong_t d_offset; /* actual offset of this entry */ ino_t d_ino; /* inode number of entry */ ushort_t d_reclen; /* length of this entry */ ushort_t d_namlen; /* length of string in d_name */ char d_name[_D_NAME_MAX+1]; /* name of entry (filename) *

14

15

16 C program that simulates ls command
#include<stdio.h> #include<string.h> #include<dirent.h> int main(int argc,char* argv[]) { DIR *dp; struct dirent *de; int i; if(argc==1)//Without arguments printing current directory files argv[1]="."; argc++; } for(i=1;i<argc;++i) dp=opendir(argv[i]); if(dp==NULL) perror(argv[i]); exit(1); printf("%s:\n",argv[i]); while((de=readdir(dp))!=NULL) if(de->d_name[0]!='.')//ignoring file which start with dot(.) printf("%s\t",de->d_name); printf("\n"); closedir(dp); return 0;


Download ppt "Directory Directory is a file containing list of entries,where each entry represents inode number and name of the file stored in that directory."

Similar presentations


Ads by Google