stat命令的实现-mysate

任务详情

  • 学习使用stat(1),并用C语言实现
  • 提交学习stat(1)的截图
  • man -kgrep -r的使用
  • 伪代码
  • 产品代码mystate.c,提交码云链接
  • 测试代码,mysate与stat(1)对比,提交截图
关于stat(1)
  • stat命令(可参考Linux系统stat指令用法)主要用于显示文件或文件系统的详细信息,该命令的语法格式如下:
    • -f:不显示文件本身的信息,显示文件所在文件系统的信息
    • -L:显示符号链接
    • -t:简洁模式,只显示摘要信息
  • stat命令显示的是文件的I节点信息。Linux文件系统以块为单位存储信息,为了找到某一个文件所在存储空间的位置,用I节点对每个文件进行索引,I节点包含了描述文件所必要的全部信息,其中包含了文件的大小,类型,存取权限,文件的所有者。
  • man -k stat
    image
  • 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

posted @ 2019-01-02 19:01  20165330张羽昕  阅读(408)  评论(0编辑  收藏  举报