首先,明确一个类型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。

目录操作函数opendir、readdir和closedir的更多相关文章

  1. 利用目录函数(opendir,readdir,closedir)查找文件个数

    如何知道一个目录下的所有文件个数呢?或许可以用tree来学(zhuang)习(bi)的同时知道文件个数.Linux系统io函数为我们提供了目录操作函数,其中有一个比较重要(实际上有三个,因为它们经常配 ...

  2. PHP 文件与目录操作函数总结

    >>>文件操作 打开 fopen();    打开文件 读取内容 fread();    从文件指针 handle 读取最多 length 个字节 readfile();    读入 ...

  3. 【Linux C中文函数手册】之 目录操作函数

    目录操作函数 1)closedir 关闭目录 相关函数: opendir表头文件: #include<sys/types.h> #include<dirent.h>定义函数: ...

  4. PHP目录操作(附封装好的目录操作函数文件)

    目录函数库常用API $path='test'; var_dump(is_dir($path));//检测是否为目录 echo '<hr/>'; echo getcwd();//得到当前的 ...

  5. php 文件、目录操作函数

    目录 opendir readdir closedir mkdir rmdir  : 只能删除空目录 文件 filetype filesize is_file basename dirname pat ...

  6. PHP目录操作函数汇总

    一.判断普通文件和目录    1.is_file()//判断给定文件名是否为一个正常的文件    2.is_dir()//判断给定文件名是否是一个目录二.文件的属性    1.file_exists( ...

  7. Linux c 目录操作函数scandir

    头文件#include <dirent.h>  函数定义:int scandir(const char *dir,struct dirent **namelist,int (*filter ...

  8. php文件和目录操作函数

    文件:打开和关闭:fopen(), fclose()读:readfile(), file(), file_get_contents(), fgets(), fgetss(), fgetc()写:fwr ...

  9. windows中操作文件和目录的函数

    1.文件操作函数       CreateFile();//创建或打开文件      ReadFile();//从文件读      WriteFile();//向文件写      SetFilePoi ...

随机推荐

  1. bjfu1238 卡特兰数取余

    题目就是指定n,求卡特兰数Ca(n)%m.求卡特兰数有递推公式.通项公式和近似公式三种,因为要取余,所以近似公式直接无法使用,递推公式我简单试了一下,TLE.所以只能从通项公式入手. Ca(n) = ...

  2. ASIHTTPREQUEST 文档

    http://blog.csdn.net/ysysbaobei/article/details/17026577 Please note that I am no longer working on ...

  3. NiuTrans 日记 1

    这些天把东北大学自然语言实验室的NiuTrans 系统搭建并按照例子将短语系统运行了一遍,写这个日记主要是为了以后能提醒自己在这其中遇到的问题. 环境:短语系统我是windows和linux都运行了, ...

  4. 【windows核心编程】 第八章 用户模式下的线程同步

    Windows核心编程 第八章 用户模式下的线程同步 1. 线程之间通信发生在以下两种情况: ①    需要让多个线程同时访问一个共享资源,同时不能破坏资源的完整性 ②    一个线程需要通知其他线程 ...

  5. CentOS6.2编译安装codelite5.3

    这两天实验室要求在服务器上安装一个codelite,于是由我对服务器下手,上网看了下悲剧的发现codelite不支持在centos上直接安装,只能编译安装,经过一番折腾之后,成功的装上了,下面是我的安 ...

  6. HDFS体系结构

    HDFS的设计目标 检测以及快速恢复硬件问题. 流式的数据访问. 移动计算比移动数据的代价小. 简化一致性模型. 超大规模数据集 异构软硬件平台之间的可移植性. HDFS的结构模型HDFS是一个主从的 ...

  7. EasyMock

    使用 EasyMock 更轻松地进行测试 窥探EasyMock(1)基础使用篇 窥探EasyMock(2)进阶使用篇

  8. BAT-使用BAT方法结束进程(删除进程)

    @echo off taskkill /f /im GAM.exe taskkill /f /im GCL10.exe

  9. HDU 5806 NanoApe Loves Sequence Ⅱ (模拟)

    NanoApe Loves Sequence Ⅱ 题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=5806 Description NanoApe, t ...

  10. JSF 2 password example

    In JSF, you can use the <h:inputSecret /> tag to render a HTML input of type="password&qu ...