• 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)对比,提交截图

  • 相关阅读:
    C# 9.0语法新特性【废弃,自用,无参考价值】
    0兆宽带年费过万,垄断坑企咋破
    筹划建立题目该如何作答?
    去重 sort -u
    大城市治理
    申论话题
    面试 思维
    成语
    人民日报怒批机关事业单位三大怪状
    留痕主义
  • 原文地址:https://www.cnblogs.com/daijunxi2019/p/15501093.html
Copyright © 2020-2023  润新知