首页 > 代码库 > unix环境高级编程笔记(6)—— 文件和目录(3)
unix环境高级编程笔记(6)—— 文件和目录(3)
这一节主要是讲目录的操作,涉及创建目录、删除目录、读取目录等
1 mkdir 和 rmdir
用mkdir创建目录,用rmdir删除目录。
#include <sys/stat.h>int mkdir(const char *pathname,mode_t mode); 成功返回0,出错返回-1.
此函数创建一个新的空目录,. 和.. 自动创建,文件访问权限mode由进程的文件模式创建屏蔽字进行修改。(必须指定一个执行权限位)
#include <unistd.h>int rmdir(const char *pathname); 成功返回0,出错返回-1.
此函数删除一个空目录。如果函数使目录的链接计数为0,且没有进程打开此目录,则释放目录所占的空间。
2 读目录
对目录具有访问权限的任何用户都可以读目录,但是,只有内核才可以写目录。
#include <dirent.h>DIR *opendir(const char *pathname); 成功返回指针,出错返回NULL。struct dirent *readdir(DIR *dp); 成功返回指针,出错返回NULL。void rewinddir(DIR *dp);int closedir(DIR *dp); 成功返回0,出错返回NULL。long telldir(DIR *dp); 返回值:与dp关联的目录中的当前位置。void seekdir(DIR *dp,long loc);
dirent 结构在<dirent.h>中定义。
struct dirrent {
ino_t d_ino;
char d_name[NAME_MAX + 1];
};
DIR 是一个内部结构,上述六个函数用这个内部结构保存当前正在被读的目录的有关信息。
由opendir返回的指向DIR结构的指针供另外5个函数使用,opendir执行初始化操作,使第一个readdir读目录的第一个目录项。且各个目录项的顺序一般不按字母顺序排列。
unix环境高级编程笔记(6)—— 文件和目录(3)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。