目录操作:目录文件本质上是一个文件,但是实际上其内容又与普通文件不同。目录文件是一种特殊的文件,其内容存储着目录下所有文件的目录项。用户可以像普通文件一样读写目录,不过需要使用一组特殊的系统调用。
1 目录权限
目录文件的访问权限和普通文件是一样的,对于目录权限而言有:
S_IRUSR :0400:用户-读
S_IWUSR :0200:用户-写
S_IXUSR :0100:用户-执行
S_IRGRP :0040:用户组-读
S_IWGRP :0020:用户组-写
S_IXGRP :0010:用户组-执行
S_IROTH :0004:其他用户-读
S_IWOTH :0002:其他用户-写
S_IXOTH :0001:其他用户-执行
其中读、写、可执行分别表示:
- 读 :表示可以列出该目录所有的文件
- 写 :表示可以创建文件、删除文件
- 可执行 :表示可以打开目录,路径有效,一般都要有这个权限
测试目录文件:S_ISDIR(stat结构体变量.st_mode);为0,表示是目录文件;为非0,表示非目录文件。
设置用户ID位对目录没有意义,但是设置用户组ID对目录却有很大的意义。因为如果设置用户组ID被设置,则在该目录下创建的任何目录和文件的组ID都将设置为该目录的组ID。
2 目录操作
2.1 创建一个目录 mkdir
linux下使用mkdir函数来创建一个目录。mkdir函数的接口:
#include <sys/stat.h>
#include <sys/types.h>
int mkdir(const char *pathname, mode_t mode);
参数pathname :要创建的目录的路径。
参数mode :目录的操作权限(一般情况下,一定要加上可执行的权限)。
函数成功执行返回0,失败返回-1。
注意:
- 一个目录总要包含两个默认的目录项,即.(当前目录)和..(上一级目录)。<