关于struct stat

在Unix/Linux中,stat可以获得一个文件的状态信息,而这些信息都放到一个结构体中struct 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;    //伟建内容对应的块数量

     };

平时我们用到的很多的命令都是从这些底层的信息来运作的。

chmod就是该表的st_mode,还有类似的chown chgrp,ln命令也与st_link有关,find命令 如 find path -atime -ctime  -mtime 时间 [-exec command {} \;]都是根据st_atime st_mtime st_ctime 来的。我猜想应该 st_size = st_blksize* st_blocks 的(具体我也没有验证)

你可能感兴趣的:(关于struct stat)