18-19 目录IO
来源:互联网 发布:2017淘宝禁售商品明细 编辑:程序博客网 时间:2024/05/29 03:18
1. 文件IO和标准IO是对文件的读写操作
目录IO是对目录的读写操作
目录I/O与文件I/O函数的比较
目录I/O
文件I/O
opendir 只能打开目录
mkdir 创建目录
open
readdir 读目录
read
rewinddir 调整位置指针
telldir
seekdir
rewind
ftell
fseek
closedir:关闭目录
close
2. opendir
DIR *opendir(const char *pathname) ;
参数:打开的目录以及路径
返回值:成功返回目录流指针,出错返回NULL。
3. mkdir
int mkdir(const char * path, mode_t mode)
path为欲创建的目录文件路径,
mode为该目录的访问权限
返回值:若目录创建成功,则返回0;否则返回-1
生成的目录权限仍和umask有关系。
4. readdir
struct dirent *readdir(DIR *dr);
参数:目录流指针
返回值:成功则为struct dirent指针,若在目录尾或出错则返回NULL。
struct dirent定义在头文件dirent.h中。
此结构至少包含下列两个成员:
struct dirent {
ino_t d_ino; // inode 号
chard_name[NAME_MAX+1];//文件名
}
5. rewinddir:重置读取目录流的位置为开头
void rewinddir(DIR *dr);
参数:目录流指针
6. telldir
long telldir(DIR *dirp)
参数:目录流指针
返回值:目录流当前位置
7. seekdir
void seekdir(DIR *dirp , long loc)
类似于文件定位函数fseek(),在目录流上设置下一个readdir()操作的位置。
参数:目录流指针和偏移量
8. closedir
int close(DIR *dr);
参数:目录流指针
返回值:成功返回 0,出错返回- 1。
9. 目录IO操作示例
#include "stdio.h"#include "sys/types.h"#include "dirent.h"int main(int argc, char *argv[]){int ret;DIR *dp;struct dirent *dir;long loc;if (argc < 2){printf("please input open directory\n");return -1;}dp = opendir(argv[1]);if(dp == NULL){printf("open mydir error\n");return -2;}while(1){dir = readdir(dp);loc = telldir(dp);printf("loc =%d\n",loc);if(dir != NULL){printf("inode = %ld,name=%s\n",dir->d_ino,dir->d_name);}else{break;}}closedir(dp);return 0;}
- 18-19 目录IO
- Java IO 目录
- java io默认目录
- Java IO 目录
- A01_C#IO目录管理
- java--IO--目录
- 黑马程序员---IO删除目录
- [IO]——操作目录
- java IO 目录列表器
- 文件IO、目录操作和标准IO\涉及的函数
- IO读写文件/目录 的简单例子
- C# 路径,文件,目录,IO常见问题汇总
- C# 路径,文件,目录,IO常见问题汇总
- IO系统_用递归遍历目录
- [IO]判断文件或者目录是否存在
- java io系列01之 "目录"
- IO流(删除带内容的目录)
- 文件和目录(IO)操作
- 安卓界面控件(一)
- 安装非开源jar包到maven本地仓库命令
- IO流_输出语句用字符缓冲流改进
- Hibernate一对一外键关联双向/单向映射
- sleep()和wait()方法与对象锁、锁池、等待池
- 18-19 目录IO
- Lesson2 软件测试之测试理论概述(2)
- 使用JDBC查询数据
- Joda-Time代替Date和Calendar
- java代码块知识详解及应用实例
- sublime初识
- 【Oracle学习】之 约束
- Common Converter Connection Formats
- LeetCode 500 Keyboard Row