oendir(),readdir(),closedir() 打开/读取/关闭目录
目录操作
当目标是目录而不是文件的时候,ls -l的结果会显示目录下所有子条目的信息,怎么去遍历整个目录呢?答案马上揭晓!
1. 打开目录
功能:opendir()用来打开参数name指定的目录,并返回DIR *形态的目录流
需要包含的头文件:<sys/types.h>,<dirent.h>
函数原型:
DIR * opendir(const char * name);
参数:
name:要打开的目录完全路径名
返回值:
成功返回目录流; 失败返回NULL
2. 读取目录
功能:readdir()返回参数dir目录流的下一个子条目(子目录或子文件)
函数原型:
struct dirent * readdir(DIR * dir);
参数:
dir:目录流
返回值:
成功返回结构体指向的指针,错误或以读完目录,返回NULL
函数执行成功返回的结构体原型如下:
1 struct dirent {
2 ino_t d_ino;
3 off_t d_off;
4 unsigned short d_reclen;
5 unsigned char d_type;
6 char d_name[256];
7 };
其中 d_name字段,是存放子条目的名称
3. 关闭目录
功能:closedir()关闭dir所指的目录流
函数原型:
int closedir(DIR * dir);
参数:
dir:目录流
返回值:
成功返回0;失败返回-1,错误原因在errno中
综合的例子:
1 #include
2 #include
3 #include
4 int main(int argc, char *argv[])
5 {
6 DIR *dp;
7 struct dirent *entp;
8 if (argc != 2) {
9 printf("usage: showdir dirname\n");
10 exit(0);
11 }
12 if ((dp = opendir(argv[1])) == NULL) {
13 perror("opendir");
14 exit(-1);
15 }
16 while ((entp = readdir(dp)) != NULL)
17 printf("%s\n", entp->d_name);
18
19 closedir(dp);
20 return 0;
21 }
oendir(),readdir(),closedir() 打开/读取/关闭目录的更多相关文章
- 利用目录函数(opendir,readdir,closedir)查找文件个数
如何知道一个目录下的所有文件个数呢?或许可以用tree来学(zhuang)习(bi)的同时知道文件个数.Linux系统io函数为我们提供了目录操作函数,其中有一个比较重要(实际上有三个,因为它们经常配 ...
- Linux C 文件与目录2 文件的打开与关闭
文件的打开与关闭 open和close 文件的打开指的是从磁盘中找到一个文件,返回一个整形的打开文件顺序的编号.打开的文件处于可读.可写状态.文件的关闭指的是释放打开的文件,是文件处于不可读写的状态. ...
- C语言readdir()函数:读取目录函数
相关函数:open, opendir, closedir, rewinddir, seekdir, telldir, scandir 头文件:#include <sys/types.h> ...
- iOS-OC-APP热更新,动态更新(仿QQ打开或关闭某个功能)
一.前言 iOS开发更新APP我觉得是比较坑的就是审核时间比较长,审核比较严,对于刚入行的小伙伴来说,雷区比较多:所以热更新是比较重要的: 大家也许会发现我们常用的QQ现在下来也就一百多兆,但是用了几 ...
- QLGame 2d Engine Android端环境搭建(通过jni读取assets目录的文件)
QLGame 2d Engine win端已经实现了一个动物的动画了,初步的东西已经完成,考虑在Android端也实现这些基本的东西,这样跨平台的引擎也就实现了! 要在Android下编程,首先要实现 ...
- [转]读取assets目录下的数据库文件
在做Android应用的时候,不可避免要用到数据库.但是当我们把应用的apk部署到真机上的时候,已经创建好的数据库及其里边的数据是不能随着apk一起安装到真机上的. (PS:这篇博客解决了我前面博客中 ...
- VB Open 函数详解 打开、关闭、读、写文件
(一)打开和关闭文件 1.顺序文件 打开顺序文件,我们可以使用Open语句.它的格式如下:Open pathname For [Input |Output |Append] As [ ...
- C++学习47 文件的概念 文件流类与文件流对象 文件的打开与关闭
迄今为止,我们讨论的输入输出是以系统指定的标准设备(输入设备为键盘,输出设备为显示器)为对象的.在实际应用中,常以磁盘文件作为对象.即从磁盘文件读取数据,将数据输出到磁盘文件.磁盘是计算机的外部存储器 ...
- Linux C编程--打开和关闭流
以下函数用于打开和关闭一个流.#include <stdio.h>FILE * fopen (const char *pathname, const char *opentype);int ...
随机推荐
- 内容提供者 ContentResolver 数据库 示例 -2
MainActivity public class MainActivity extends ListActivity { // 访问内容提供者时需要的主机名称 public stat ...
- java下socket传文件
package cn.stat.p4.ipdemo; import java.io.BufferedReader; import java.io.BufferedWriter; import java ...
- php多文本框提交
<form action="" method="post"><input type=text name=name[]><input ...
- angularjs中关于ng-if的一些理论
ng-if简介: ● 使用ng-if指令可以完全根据表达式的值在DOM中生成或移除一个元素.如果赋值给ng-if 的表达式的值是false,那对应的元素将会从DOM中移除,否则对应元素的一个克隆将被重 ...
- HTML&CSS基础学习笔记1.26-input重置表单
重置表单 <input>的[type]属性值为"button"的时候表示一个普通的按钮,相当于一个<button>标签. <input>的[ty ...
- Android系统服务-简介
http://blog.csdn.net/chenyafei617/article/details/6577907 Introduction 我们知道Android系统服务挺多的,做程序时经常会用到, ...
- 页面正在载入js
页面显示(pageshow)和页面隐藏(pagehide)事件 http://blog.163.com/jiang_tao_2010/blog/static/121126890200911403336 ...
- ural 1017. Staircases
http://acm.timus.ru/problem.aspx?space=1&num=1017 #include <cstdio> #include <cstring&g ...
- 递归转手工栈处理的一般式[C语言]
是任意形式的递归,是化解的一般式. 主题所谓的“递归调用化解为栈处理”,意思是,将递归函数调用化解为“一个由stack_push stack_pop stack_top等函数调用组成的循环式子”.这里 ...
- 管理TEMP数据
SQL> select * from v$mystat where rownum<2; SID STATISTIC# VALUE ---------- ---------- ------- ...