• 改进ls的实现


    改进ls的实现

    一、要求

    • 参见附图,改进你的ls的实现。提交代码运行截图和码云链接

    img

    二、步骤

    目录 ls

    • 功能:列出目录内容,显示文件信息
    • ls -l:显示当前工作目录下包含目录及属性详细信息(共7列)
    • 第一列:文件属性(类—文件-目录)
      二到四位:文件创建者权限(-代表无权限,r代表读权限,w代表写权限,x代表执行权限)
      五到七位:代表同组用户权限
      八到十位:其他用户权限(具有读和其他权限,没有写权限)
    • 第二列:文件子目录数(字段数至少为2)
    • 第三列:所有者
    • 第四列:所属用户组
    • 第五列:文件大小
    • 第六列:文件最后修改时间
    • 第七列:文件名

    man ls 查看ls的具体命令功能

    img

    • 目录是一种特殊的文件,它的内容是文件和目录的名字
    • 目录文件永远不会空,每个目录都有至少两个特殊的项“."(当前目录)和:".."(上一级目录)
    • 系统项读取目录调用man -k directory|grep read
    • 输入命令man 3 read directory可以看到详细信息(查看其数据结构,name保存其文件名)

    ls的改进中的问题

    • 排序:

    文件名读入数组
    qsort()排序

    • 分栏:

    文件名读入数组
    计算列宽和行数
    .和..
    加入-a选项
    没有-a,不显示隐藏文件
    l(会显示详细信息)
    功能不同
    单独实现
    如何读取文件属性

    • man 2 stat查看stat结构体的详细信息

    img

    st_size:所占字节数
    st_nlink:文件链接数
    st_mtime:文件最后修改时间(time_t->ctime日历时间格式)
    st_mode:文件类型和许可权限(模式转化为字符 user group other)
    

    三、码云链接

  • 相关阅读:
    tarjan无向图缩点
    8、11 T1:入阵曲:复杂度估算,观察规律与性质,数据存储与查询
    容斥系数
    模拟测试12:
    模拟测试11:冷静稳健。
    好的文章
    容器,函数等
    后缀数组:
    HDU5618 Jam's problem again CDQ分治
    P3810 陌上花开 CDQ分治
  • 原文地址:https://www.cnblogs.com/sisterben/p/15552834.html
Copyright © 2020-2023  润新知