任务详情
- 学习使用stat(1),并用C语言实现
- 提交学习stat(1)的截图
man -k
,grep -r
的使用- 伪代码
- 产品代码
mystate.c
,提交码云链接 - 测试代码,
mysate
与stat(1)对比,提交截图
关于stat(1)
stat
命令(可参考Linux系统stat指令用法)主要用于显示文件或文件系统的详细信息,该命令的语法格式如下:-f
:不显示文件本身的信息,显示文件所在文件系统的信息-L
:显示符号链接-t
:简洁模式,只显示摘要信息
stat
命令显示的是文件的I节点信息。Linux文件系统以块为单位存储信息,为了找到某一个文件所在存储空间的位置,用I节点对每个文件进行索引,I节点包含了描述文件所必要的全部信息,其中包含了文件的大小,类型,存取权限,文件的所有者。man -k stat
- Linux下的stat函数
- 通过文件名
filename
获取文件信息,并保存在buf
所指的结构体stat
中 - 头文件
#include <sys/stat.h> #include <unistd.h>
- 函数
int stat(const char *file_name, struct stat *buf );
- 相关结构体
struct stat { dev_t st_dev; //文件的设备编号 ino_t st_ino; //节点 mode_t st_mode; //文件的类型和存取的权限 nlink_t st_nlink; //连到该文件的硬连接数目,刚建立的文件值为1 uid_t st_uid; //用户ID gid_t st_gid; //组ID dev_t st_rdev; //(设备类型)若此文件为设备文件,则为其设备编号 off_t st_size; //文件字节数(文件大小) unsigned long st_blksize; //块大小(文件系统的I/O 缓冲区大小) unsigned long st_blocks; //块数 time_t st_atime; //最后一次访问时间 time_t st_mtime; //最后一次修改时间 time_t st_ctime; //最后一次改变时间(指属性) };
- 通过文件名
mysate
- 码云链接
- 对比