首页 > 其他分享 >stat命令的实现-mysate(课上测试)

stat命令的实现-mysate(课上测试)

时间:2023-11-27 14:11:06浏览次数:37  
标签:info stat mysate argv st 课上 printf include

  1. 提交学习stat(1)的截图
    image

  2. 推导出实现stat(1)需要的系统调用,并给出实现stat(1)的伪代码

    • 需要的系统调用:readdir() 、closedir()、fstat()、lstat()、fstatat()

    • 伪代码

      #include <stdio.h>
      #include <stdlib.h>
      #include <unistd.h>
      #include <sys/stat.h>
      #include <dirent.h>
      
      int main(int argc, char *argv[]) 
      {
          if (argc < 2) 
          {
              printf("Usage: %s <filename>\n", argv[0]);
              return 1;
          }
          struct stat stat_info;
          int lstat_result = lstat(argv[1], &stat_info);
          if (lstat_result == -1)
          {
              printf("Error: 无法获取 %s 的状态信息\n", argv[1]);
              return 1;
          }
          printf("File status for %s:\n", argv[1]);
          printf("  st_mode: %lu\n", stat_info.st_mode);
          printf("  st_size: %lu\n", stat_info.st_size);
          printf("  st_mtime: %lu\n", stat_info.st_mtime);
          printf("  st_ctime: %lu\n", stat_info.st_ctime);
          return 0;
      }
      
  3. 编写产品代码 mystate.c,提交代码

      #include <stdio.h>
      #include <stdlib.h>
      #include <unistd.h>
      #include <sys/stat.h>
      #include <dirent.h>
    
      int main(int argc, char *argv[]) {
          if (argc < 2) {
              printf("Usage: %s <filename>\n", argv[0]);
              return 1;
          }
    
          struct stat stat_info;
          int lstat_result = lstat(argv[1], &stat_info);
    
          if (lstat_result == -1) {
              printf("Error: 无法获取 %s 的状态信息\n", argv[1]);
              return 1;
          }
    
          printf("File status for %s:\n", argv[1]);
          printf("  st_mode: %lu\n", stat_info.st_mode);
          printf("  st_size: %lu\n", stat_info.st_size);
          printf("  st_mtime: %lu\n", stat_info.st_mtime);
          printf("  st_ctime: %lu\n", stat_info.st_ctime);
      
          return 0;
      }
    
  4. 测试代码,mystat 与stat(1)对比,提交截图
    image

标签:info,stat,mysate,argv,st,课上,printf,include
From: https://www.cnblogs.com/Vicky-Peng/p/17859108.html

相关文章

  • 用VMware Workstation安装openEuler配置opengauss并连接Django 详细教程
    1.下载准备openEuler22.03LTSSP2下载链接:openEuler下载|欧拉系统ISO镜像|openEuler社区官网下载第一个就可以了,之后配置的时候直接勾选上opengauss,不用下载第二个的(太大了)VMwareWorkstation17Player下载链接:https://www.vmware.com/products/workstation-player/workstat......
  • Java中static、final、static final的区别
    finalfinal可以修饰:属性,方法,类,局部变量(方法中的变量)final修饰的属性的初始化可以在编译期,也可以在运行期,初始化后不能被改变。final修饰的属性跟具体对象有关,在运行期初始化的final属性,不同对象可以有不同的值。final修饰的属性表明是一个常数(创建后不能被修改)。final修饰的方......
  • final 和 static
    //1.final常量,需要在定义的时候进行初始化;每个对象的初始化不一样;//2.staticfinal常量可以在定义的时候初始化;也可以在static块中初始化;该种定义该类的对象使用的值一致。//3.被static修饰的变量,叫静态变量//4:静态区:方法区中一个模块,用于存放静态变量和静态代码块,也就是st......
  • [Codeforces] CF1717C Madoka and Formal Statement
    时间限制\(1s\)|空间限制\(250M\)题目大意题目描述给定一个数列\(a_{1…n}\),如果满足下面条件,你可以使\(a_i=a_i+1\):\(i<n\)且\(a_i\leqa_{i+1}\)\(i=n\)且\(a_i\leqa_{1}\)再给定一个数列\(b_{1…n}\),问\(a\)是否可以通过上述操作变......
  • 【ORACLE】OALL8 处于不一致状态 SQL Error: 17447, SQLState: null
    2023-11-24[http-nio-8080-exec-9]WARNorg.hibernate.engine.jdbc.spi.SqlExceptionHelper-SQLError:17447,SQLState:null2023-11-24[http-nio-8080-exec-9]ERRORorg.hibernate.engine.jdbc.spi.SqlExceptionHelper-OALL8处于不一致状态org.springframework.orm.jp......
  • 使用CloudStats监控Linux服务器
    CloudStats是一个服务器监控平台,可让您轻松地监控整个服务器基础平台,同时也可以立即采取行动并解决问题。CloudStats监控工具不需要任何特殊技能或知识来执行设置并开始监控您的服务器。因为是国外的服务器,打开有点慢!在服务器( /Debian/Ubuntu/Fedora等)上安装CloudStats......
  • 2023最新版VMware WorkStation虚拟机保姆式安装手册
    博主环境:版本:Windows10专业版版本号:22H2安装日期:2023-01-29操作系统内部版本:19045.3693体验:WindowsFeatureExperiencePack1000.19053.1000.0VMwareWorkstation17Pro第一步:下载地址:https://www.vmware.com/cn/products/workstation-pro.html第二步:安装双击:VMwa......
  • 17、Flutter StatelessWidget 、 StatefulWidget
    在Flutter中自定义组件其实就是一个类,这个类需要继承StatelessWidget/StatefulWidget。StatelessWidget是无状态组件,状态不可变的widgetStatefulWidget是有状态组件,持有的状态可能在widget生命周期改变。通俗的讲:如果我们想改变页面中的数据的话这个时候就需要用到StatefulWidg......
  • iostat
    参考:https://zhuanlan.zhihu.com/p/649946956安装#默认已安装yuminstallsysstat-y选项参数iostat<options><devicename>-c显示CPU使用情况-d显示磁盘使用情况--dec={0|1|2}指定要使用的小数位数,默认为2-gGROUP_NAME{DEVICE[...]|ALL......
  • STATA 安装FUZZY
    网上搜索到STATA模糊匹配fuzzy输入命令sscdescribef显示所有能通过ssc安装并且以f开头的所有命令在其中找出相关的具体命令发现有fuzzydid所以使用命令:sscinstallfuzzydid来安装若没有相关的,则只能从网上搜索相应的安装包手动安装PACKAGESyoucould-netdescribe-:f......