zoukankan      html  css  js  c++  java
  • stat命令的实现-mystat

    stat(1)学习

    ##学习使用stat(1),并用C语言实现 ##1、提交学习stat(1)的截图 man 1 stat 查看stat帮助文档

    stat命令以文字的格式来显示inode的内容。

    查看文件inode信息
    File:显示文件名
    Size:显示文件大小
    Blocks:文件使用的数据块总数
    IO Block:IO块大小
    regular file:文件类型(常规文件) ,如果是其他文件类型会显示出对应的文件类型
    Device:设备编号
    Inode:Inode号
    Links:链接数
    Access:文件的权限
    Gid、Uid:文件所有权的Gid和Uid。
    Access Time:简写为atime,表示文件的访问时间。当文件内容被访问时,更新这个时间
    Modify Time:简写为mtime,表示文件内容的修改时间,当文件的数据内容被修改时,更新这个时间。
    Change Time:简写为ctime,表示文件的状态时间,当文件的状态被修改时,更新这个时间,例如文件的链接数,大小,权限,Blocks数。
    

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

    2、man -k ,grep -r的使用

    man 2 stat 查看stat()函数使用方法

    man -k stat | grep 2 查询stat命令的系统调用

    3、伪代码

    首先判断输入中是否包含文件参数,如果有则继续,没有则提示用户输入错误。
    然后声明结构体,并调用stat()函数给结构体赋值,将文件的设备编号、节点、文件的类型和存取的权限、连到该文件的硬链接数目等按顺序输出。 
    

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

    mystate.c
    新建mystat.c文件并编译文件

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

  • 相关阅读:
    【转载】要有一流的科研 也要有一流的教学(在2011年教师节复旦大学青年教师座谈会上的发言)
    【转载】谢启鸿老师访谈录之一(10级,撰稿人:侯灵子)
    【转载】谢启鸿老师访谈录之二(12级,撰稿人:陈筠臻)
    [问题2014S15] 解答
    [问题2014S14] 解答
    判断是否关注了微信公众号 subscribe 0=未关注 1=已关注
    PHP获取今天、昨天、明天的日期
    lnmp安装fileinfo扩展
    Linux kill和kill-9区别
    单列索引、多列索引和最左前缀原则
  • 原文地址:https://www.cnblogs.com/daijunxi2019/p/15501093.html
Copyright © 2011-2022 走看看