关于struct stat

本文详细介绍了在Unix/Linux系统中如何使用struct stat结构体获取文件的状态信息,包括文件模式、inode节点号、设备号码等,并解释了这些信息如何应用于chmod、chown、find等常见命令。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在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 的(具体我也没有验证)

转载于:https://my.oschina.net/u/919373/blog/149563

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值