zoukankan      html  css  js  c++  java
  • 目录操作函数opendir、readdir和closedir

    首先,明确一个类型DIR的含义:

    #include <dirent.h>

    DIR    A type representing a directory stream.

    DIR是在目录项格式头文件dirent.h中定义的,它表示一个目录流类型。

    一、opendir - open a directory

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

    DIR *opendir(const char *name);

    DESCRIPTION

    opendir函数打开一个与给定的目录名name相对应的目录流,并返回一个指向该目录流的指针。打开后,该目录流指向了目录中的第一个目录项。

    RETURN VALUE

    opendir函数,打开成功,返回指向目录流的指针;打开失败,则返回NULL,并设置相应的错误代码errno。

    二、readdir - read a directory

    SYNOPSIS
    #include <sys/types.h>

    #include <dirent.h>

    struct dirent *readdir(DIR *dir);

    DESCRIPTION

    readdir函数返回一个指向dirent结构体的指针,该结构体代表了由dir指向的目录流中的下一个目录项;如果读到end-of-file或者出现了错误,那么返回NULL。

    在Linux系统中,dirent结构体定义如下:

           struct dirent {
                 ino_t          d_ino;       /* inode number */
                 off_t          d_off;       /* offset to the next dirent */
                 unsigned short d_reclen;    /* length of this record */
                 unsigned char  d_type;      /* type of file */
                 char           d_name[256]; /* filename */
             };

    readdir函数返回的值会被后续调用的(针对同一目录流的)readdir函数返回值所覆盖。

    RETURN VALUE

    readdir函数,成功时返回一个指向dirent结构体的指针;失败时或读到end-of-file时,返回NULL,并且设置相应的错误代码errno。

    三、closedir - close a directory

    SYNOPSIS
    #include <sys/types.h>

    #include <dirent.h>

    int closedir(DIR *dir);

    DESCRIPTION

    closedir函数关闭与指针dir相联系的目录流。关闭后,目录流描述符dir不再可用。

    RETURN VALUE

    closedir函数,成功时返回0;失败是返回-1,并设置相应的错误代码errno。

    四、chdir, fchdir - change working directory

    SYNOPSIS
    #include <unistd.h>

    int chdir(const char *path);
    int fchdir(int fd);

    DESCRIPTION

    chdir函数改变当前工作目录为path指定的目录。

    fchdir函数与chdir功能一样,唯一的区别是fchdir所要改变成的工作目录由打开的文件描述符指定。

    RETURN VALUE

    成功,返回0;失败,返回-1,并设置相应的错误代码errno。

  • 相关阅读:
    redis性能优化、内存分析及优化
    代码质量审核和管理工具分析比较
    SpringBoot集成Nacos
    Navicat,Dbeaver,heidiSql,DataGrip数据库连接工具比较
    python报错:
    6.Python深入_内存管理
    Win7安装python第三方模块objgraph报错
    5.Python深入_装饰器
    4.Python深入_闭包
    1.Python深入_对象的属性
  • 原文地址:https://www.cnblogs.com/nufangrensheng/p/3495019.html
Copyright © 2011-2022 走看看