stat命令的实现-mysate

学习目标

  1. 提交学习stat(1)的截图
  2. man -k ,grep -r的使用
  3. 伪代码
  4. 产品代码 mystate.c,提交码云链接
  5. 测试代码,mystat 与stat(1)对比,提交截图

提交学习stat(1)的截图

安装man手册:

用man -f查看命令所在章节

在Ubuntu中通过man手册来学习 stat 命令相关使用方法:


通过stat命令可以显示以下信息:

File:显示文件名
Size:显示文件大小
Blocks:文件使用的数据块总数
IO Block:IO块大小
regular file:文件类型(常规文件)
Device:设备编号
Inode:Inode号
Links:链接数
Access:文件的权限
Gid、Uid:文件所有权的Gid和Uid。

man -k ,grep -r的使用

使用man -k, grep -r 掌握stat命令接口



stat 命令头文件及接口:

#include <fcntl.h>   
#include <sys/stat.h>
int stat(const char *file_name, struct stat *buf );

stat结构体:

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;      //文件字节数(文件大小)
    blksize_t     st_blksize;   //块大小(文件系统的I/O 缓冲区大小)
    blocks_t      st_blocks;    //块数
    time_t        st_atime;     //最后一次访问时间
    time_t        st_mtime;     //最后一次修改时间
    time_t        st_ctime;     //最后一次改变时间(指属性)
  };

伪代码

1.将文件传入系统调用stat()。
2.打印输出stat中的结构体内容。

产品代码 mystate.c,提交码云链接

运行截图:

码云链接:

https://gitee.com/sister_ben/kali/blob/master/mystat/mystat.c

测试代码,mystat 与stat(1)对比,提交截图

posted @ 2022-10-16 10:52  乌龍茶  阅读(74)  评论(0)    收藏  举报