Linux 目录操作API

使用案例见链接:

linux 目录操作之找出某目录下所有的文件_伐檀(ノ`Д)ノ的博客-CSDN博客

目录操作的相关API

1,创建或删除一个空目录
NAME
       mkdir, mkdirat - create a directory

SYNOPSIS
       #include <sys/stat.h>
       #include <sys/types.h>

       mkdir用来用来创建一个空目录,该路径名为pathname,mode为该目录的权限,
       目录的读的权限是指可以查看目录内容,执行的权限是指可以进入目录。
       int mkdir(const char *pathname, mode_t mode);
               @pathname: 要创建的目录的路径
               @mode :指定目录的权限
           返回值:
               成功返回0
               失败返回-1

 NAME
       rmdir - delete a directory

SYNOPSIS
       #include <unistd.h>

       rmdir用来删除一个空目录
       int rmdir(const char *pathname);
               @pathname: 指定删除的目录的路径
           返回值:
               成功返回0
               失败返回-1


2,打开一个目录
NAME
       opendir, fdopendir - open a directory

SYNOPSIS
       #include <sys/types.h>
       #include <dirent.h>

    opendir和fdopendir都是用来打开一个目录,opendir用一个路径名来指定目录,
    而fdopendir用文件描述符来指定。
       DIR *opendir(const char *name);
       DIR *fdopendir(int fd);

    返回值:
        如果成功返回一个DIR的指针,在Unix/Linux下面,目录用DIR结构体来维护
        失败返回NULL,errno被设置

3,读一个目录
    
NAME
       readdir - read a directory

SYNOPSIS
       #include <dirent.h>

    readdir用来从dirp指定的目录中,读取其中的目录项(struct dirent)并返回。
    目录文件就是一个目录项数组,里面保存的是文件的i-node编号
       struct dirent *readdir(DIR *dirp);
               @dirp: 表示读哪一个目录
       返回值:
              如果成功返回一个目录项(struct dirent),数组下标加一。
              下次再调用readdir读同一个目录,则返回下一个目录项。
              如果读完了或者出错了,则返回NULL。

            struct dirent {
           ino_t          d_ino; //该文件i-node编号
           off_t          d_off; //偏移量,即数组的下标
           unsigned short d_reclen;//这条结构体的长度
           unsigned char  d_type; //该目录项对应的文件的类型
                                 (有些文件系统可能不支持)
           char           d_name[256];//文件的名字(不带路径)
           };

           NOTE: d_ino,d_name只有这两个成员变量是被所有的系统支持的

4, closedir 关闭一个目录


NAME
       closedir - close a directory

SYNOPSIS
       #include <sys/types.h>

       #include <dirent.h>

    closedir用来关闭dirp指定的目录
       int closedir(DIR *dirp);
       返回值:
               成功返回0
               失败返回-1

5, getcwd
NAME
       getcwd, getwd, get_current_dir_name - get current working directory

SYNOPSIS
       #include <unistd.h>
    getcws用来获取当前的工作路径(绝对路径),保存到buf指向的字符数组,数组大小为size
       char *getcwd(char *buf, size_t size);

6,  chdir
NAME
       chdir, fchdir - change working directory

SYNOPSIS
       #include <unistd.h>

    chdir用来把当前路径修改为path指定的路径
       int chdir(const char *path);
       返回值:
               成功返回0
               失败返回-1

7. remove/unlink  用来删除一个文件或目录

NAME
       remove - remove a file or directory

SYNOPSIS
       #include <stdio.h>

       int remove(const char *pathname);
NAME
       unlink, unlinkat - delete a name and possibly the file it refers to

SYNOPSIS
       #include <unistd.h>

       int unlink(const char *pathname);
 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值