zoukankan      html  css  js  c++  java
  • 操作系统第4次实验报告:文件系统

    • 姓名:李宗政
    • 学号:201821121029
    • 班级:计算1811

    1. 编写程序

    在服务器上用Vim编写一个程序:实现Linux系统命令ls -lai的功能,

    myls.h

     myls.c

     

     

    main_myls.c

     

    2. 分析运行结果

    运行结果:

     结果分析:

    以第一行为例

    第一列:索引号

      索引号为266867(printf("%d ",(int)file_message->st_ino);)

    第二列:文件的类型及权限

      drwxr--r-x:

      r:可读取文件的实际内容 w:可编辑、新增、修改该文件的实际内容 x:可被执行

      -:普通文件,d:目录文件,l:链接文件,b:设备文件,c:字符设备文件,p:管道文件

    void file_type(const struct stat* file_message)
    {
    //mode_t mode = (*get_message).st_mode;
      mode_t mode = file_message->st_mode;

      if (S_ISREG(mode)) printf("-"); // 普通文件
      else if(S_ISDIR(mode)) printf("d"); // 目录文件
      else if(S_ISCHR(mode)) printf("c"); // 字符设备文件
      else if(S_ISBLK(mode)) printf("b"); // 块设备文件
      else if(S_ISFIFO(mode)) printf("p"); // 管道文件
      else if(S_ISLNK(mode)) printf("l"); // 链接文件
      else printf("s"); // socket文件
    }

    void file_power(const struct stat* file_message)
    {
      mode_t mode = file_message->st_mode;

    // 判断USR权限
      printf("%c", mode&S_IRUSR?'r':'-');
      printf("%c", mode&S_IWUSR?'w':'-');
      printf("%c", mode&S_IXUSR?'x':'-');

    // 判断GRP权限
      printf("%c", mode&S_IRGRP?'r':'-');
      printf("%c", mode&S_IWGRP?'w':'-');
      printf("%c", mode&S_IXGRP?'x':'-');

    // 判断OTH权限
      printf("%c", mode&S_IROTH?'r':'-');
      printf("%c", mode&S_IWOTH?'w':'-');
      printf("%c ", mode&S_IXOTH?'x':'-');
    }

    第三列:文件的链接数.

      5(printf("%d ", file_message->st_nlink); // 打印硬链接数)

    第四列:拥有文件的用户

      lizongzheng

    第五列:拥有文件的组

      jmu-cs-18(file_id(file_message); // 转换并打印用户id与组id)

    第六列:文件的大小。

      4096(printf("%5ld ", file_message->st_size); // 打印文件大小)

    第七列:文件最后的修改时间。

      Apr 30 11.00(file_mtime(file_message); // 打印文件最后修改时间)

    第八列:文件名(printf("%s ", filename); // 打印文件名)

      

     

  • 相关阅读:
    使用 ServiceStack 构建跨平台 Web 服务
    .NET的微型Web框架 Nancy
    orcale复制表结构及其数据
    利用PL/SQL Developer工具导出数据到excel,导入excel数据到表
    PLSQL导入/导出数据方法
    基于Quqrtz.NET 做的任务调度管理工具
    Web监听器导图详解(转)
    GIT分支管理是一门艺术(转)
    我需要完全理解这部分代码才能确保它能够正常工作,如果由我来修复代码中的问题,我是不会这么写的,因此希望你也不要这么来写(转)
    不要学习代码,要学会思考(转)
  • 原文地址:https://www.cnblogs.com/Lucienight/p/12809444.html
Copyright © 2011-2022 走看看