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 ...
随机推荐
- JQuery 获取checkbox被选中的值
html代码 <ul id="dxbox"> <li><input type=" ...
- OD: Universal Shellcode
本节讲如果开发通用的 Shellcode. Shellcode 的组织 shellcode 的组织对成功地 exploit 很重要. 送入缓冲区的数据包括: . 填充物.一般用 0x90 (NOP) ...
- java语句与流程控制
java程序结构按照结构化程序的思想分为顺序结构,选择结构,和循环结构. ①选择语句 选择结构分为单选择,双选择和多选择.双选择是标准的选择结构,单选择是双选择的简化形式,多选择是双选择的嵌套形式. ...
- Jenkins学习之——(1)Jenkins的安装与配置
1.最近公司要求做自动化部署,于是自学了jenkins.这个参考书很少,网上的文章也讲得很模糊,于是打算把自己学习东西记下来,希望对大家有所帮助. 一.jenkins的安装 到jenkins官网(ht ...
- iOS中你必须了解的多线程
多线程概念详解 什么是进程? 简单的说进程就是我们电脑上运行的一个个应用程序,每一个程序就是一个进程,并且每个进程之间是独立的,每个进程运行在其专用受保护的内存空间内(window系统可以通过任务管理 ...
- linux 进程备忘
进程间同步互斥方式: 1.管道pipe(亲属进程适用),命名管道fifopipe 2.信号量 3.共享内存配合信号量
- CREATE DATABASE
CREATE DATABASE IF NOT EXISTS `focusdata` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;USE `fo ...
- 项目中redis类似MVC的使用
- angularjs学习笔记—事件指令
ngClick 适用标签:所有触发条件:单击 #html <div ng-controller="LearnCtrl"> <div ng-click=" ...
- 最近写的页面,含有大量的ajax
<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %><%@ taglib ur ...