专题 6 目录文件编程

1.       对目录文件的操作包括创建、打开、定位和删除等内容, 其中

(1)       获取工作目录的函数有getcwdgetwd等。

(2)       设置工作目录的函数有chdirfchdir等。

(3)       创建目录文件的函数有mkdir等。

(4)       删除目录文件的函数有rmdir等。

(5)       目录文件定位的函数有seekdirrewinddirtelldir等。

2.       代码实例。

2.1   读取工作目录(绝对路径)

char *getcwd(char *buf, size_t size);

char *getwd(char *pathname);

/************实例***************/

#include <unistd.h>

#include<stdio.h>

int main()

{

        char buf[255];

        fprintf(stderr, “pwd = [%s]/n”, getcwd(buf, sizeof(buf));

        chdir(“../”);

        fprintf(stderr, “pwd = [%s]/n”, getcwd(buf, sizeof(buf));

 

        return 0;

}

2.2   目录的创建与删除

int mkdir(const char *path, mode_t mode);

int rmdir(char *path);

PS:目录的访问权限由参数mode与操作系统umask值共同确定,公式为:

mode & (~mask)

/***********创建目录************/

#include <unistd.h>

#include <stdio.h>

 

int main(int argc, char *argv[])

{

        if(argc != 2)

               return -1;

        fprintf(stderr, “create dir [%s] respcode=[%d]/n”, argv[1], mkdir(argv[1]));

}

/***********删除目录************/

#include <unistd.h>

#include <stdio.h>

 

int main(int argc, char *argv[])

{

        if(argc != 2)

               return -1;

        fprintf(stderr, “delete dir [%s] respcode=[%d]/n”, argv[1], rmdir(argv[1]));

}

 

2.3   目录的读取

DIR *opendir(const char *dirname);

struct dirent *readdir(DIR *dirp);

int closedir(DIR *dirp);

/***********列目录*************/

#include <stdio.h>

#include <dirent.h>

int main(int argc, char *argv[])

{

        DIR *pdir;

        struct dirent *pent;

        if(argc != 2)

               return -1;

        if((pdir = opendir(argv[1])) == NULL)

        {

               fprintf(stderr, “open dir failed./n”);

               return -1;

        }

        while(1)

        {

               pent = readdir(pdir);

               if(pent == NULL)

                      break;

               fprintf(stderr, “%5d %s/n”, pent->d_ino, pent->d_name);

        }

        closedir(pdir);

}

2.4   目录的定位

void seekdir(DIR *dirp, long int loc);

void rewinddir(DIR *dirp);

long int telldir(DIR *dirp);

 

/************目录定位使用模板****************/

long int l;

DIR *dirp;

…………….

l = telldir(dirp);

………………

seekdir(dirp, l);

…………………

函数rewinddir重置目录流到开始位置等价于语句

seekdir(dirp, 0);

你可能感兴趣的:(编程,工作,struct,null,delete,Path)