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

    stat命令的实现-mystat

    stat(1)学习

    man 1 stat查看stat帮助文档

    观察SEE ALSO有关内容,猜测stat使用系统调用

    功能
    stat命令主要用于显示文件或文件系统的详细信息,相比ls命令而言,stat还可以看到设备号,环境等信息。

    格式
    stat [option] file or dir

    常用选项

    其中-c选项可使用如下参数

    %a     八进制表示的访问权限
    %A     可读格式表示的访问权限
    %b     分配的块数(参见 %B)
    %B     %b 参数显示的每个块的字节数
    %d     十进制表示的设备号
    %D     十六进制表示的设备号
    %f     十六进制表示的 Raw 模式
    %F     文件类型
    %g     属主的组 ID
    %G     属主的组名
    %h     硬连接数
    %i     Inode 号
    %n     文件名
    %N     如果是符号链接,显示器所链接的文件名
    %o     I/O 块大小
    %s     全部占用的字节大小
    %t     十六进制的主设备号
    %T     十六进制的副设备号
    %u     属主的用户 ID
    %U     属主的用户名
    %x     最后访问时间
    %X     最后访问时间,自 Epoch 开始的秒数
    %y     最后修改时间
    %Y     最后修改时间,自 Epoch 开始的秒数
    %z     最后改变时间
    %Z     最后改变时间,自 Epoch 开始的秒数
    
    针对文件系统还有如下格式选项:
    
    %a     普通用户可用的块数
    %b     文件系统的全部数据块数
    %c     文件系统的全部文件节点数
    %d     文件系统的可用文件节点数
    %f     文件系统的可用节点数
    %C     SELinux 的安全上下文
    %i     十六进制表示的文件系统 ID
    %l     文件名的最大长度
    %n     文件系统的文件名
    %s     块大小(用于更快的传输)
    %S     基本块大小(用于块计数)
    %t     十六进制表示的文件系统类型
    %T     可读格式表示的文件系统类型
    
    

    man -k和grep -r查找stat有关函数

    man -k stat | grep 2在man手册中第二节查找包含的内容

    使用man -k stat | grep -nr include指令

    使用man 2 stat查找stat函数调用有关内容

    找到包含stat有关的头文件

    #include <sys/types.h> 
    #include <sys/stat.h> 
    #include <unistd.h>
    

    结构体

    返回值

    SEE ALSO

    stat伪代码

    判断输入中是否包含文件参数,如果有则继续,没有则提示用户输入错误
    声明结构体,调用函数stat();
    打印输出

    {
      节点ino;
      文件类型mode;
      文件的连接数nlink
      用户ID uid和组ID gid;
      块大小blksize;
      字节数size;
      块数目blocks;
      三个时间atime、mtime和ctime
    }
    

    产品代码 mystate.c

    代码已上传至码云我的仓库

    测试代码

    创建test.txt测试文件,先用stat进行测试

    再使用mystat,二者对比

  • 相关阅读:
    改写promise并添加超时处理
    js将文案复制到剪贴板
    学习笔记(安装、命名实体识别、BERT、面试)
    读书笔记——安装
    Markdown使用
    奔波三载,虽死犹生
    .net工程师的利器
    .NET开发相关技术
    两行代码教你用React useContext代替React-redux
    记解决 `antd is not defined` 解决ant design 打包体积过大的问题
  • 原文地址:https://www.cnblogs.com/20191218tangqiheng/p/15500866.html
Copyright © 2011-2022 走看看