结构体stat
Linux文件系统以块为单位存储信息,为了找到某一个文件所在的存储空间的位置用一个数据结构来对每个文件进行索引,而stat显示的就是该结构体信息,下面我们可以来看下这个结构体。
struct stat {
mode_t st_mode; //文件对应的模式,文件,目录等
ino_t st_ino; //inode节点号
dev_t st_dev; //设备号码
dev_t st_rdev; //特殊设备号码
nlink_t st_nlink; //文件的连接数
uid_t st_uid; //文件所有者
gid_t st_gid; //文件所有者对应的组
off_t st_size; //普通文件,对应的文件字节数
time_t st_atime; //文件最后被访问的时间
time_t st_mtime; //文件内容最后被修改的时间
time_t st_ctime; //文件状态改变时间
blksize_t st_blksize; //文件内容对应的块大小
blkcnt_t st_blocks; //伟建内容对应的块数量
};
stat结构体中的st_mode 则定义了下列数种情况:
S_IFLNK 0120000 符号连接
S_IFREG 0100000 一般文件
S_IFBLK 0060000 区块装置
S_IFDIR 0040000 目录
S_IFIFO 0010000 先进先出
S_ISUID 04000 文件的拥有者在执行中的id位
S_ISGID 02000 文件的所属组在执行中的id位
S_ISVTX 01000 文件的sticky位
S_IRUSR(S_IREAD) 00400 文件所有者具可读取权限
S_IWUSR(S_IWRITE)00200 文件所有者具可写入权限
S_IXUSR(S_IEXEC) 00100 文件所有者具可执行权限
S_IRGRP 00040 用户组具可读取权限
S_IWGRP 00020 用户组具可写入权限
S_IXGRP 00010 用户组具可执行权限
S_IROTH 00004 其他用户具可读取权限
S_IWOTH 00002 其他用户具可写入权限
S_IXOTH 00001 其他用户具可执行权限
为了方便理解,我们在说一下Linux中的三类人:拥有者(u),所属组(g),其他人(o).
Linux文件的三种权限:只读(r),只写(w),可执行(x),无权限(-)
---------------------
原文:https://blog.youkuaiyun.com/yaszja/article/details/60871512