20145308 《信息安全系统设计基础》第10周学习总结

20145308 《信息安全系统设计基础》第10周学习总结

教材学习内容总结

视频学习:系统调用

ls命令

  • -l显示详细信息
  • man ls
编写程序实现lsls -l命令
  • 如何列出目录内容:Linux中用目录树组织磁盘上的目录或文件

    • 目录是一种特殊的文件,内容是文件和目录的名字
    • 目录包含很多记录,每条记录代表一个目录或文件
    • 目录文件永远不会空,至少包括...两项
    • man -k directory | grep readman 3 readdir
  • 如何读取文件属性

    • man -k file | grep statusman 2 stat
    • 文件权限st_mode为16位二进制整数
    • 模式转化为字符:二进制掩码可以用八进制表示
    • sys/stat.h中定义了S_IFREGS_IFDIR两个判断是目录还是文件的两个掩码
    • 将用户ID转换成用户名:cat /etc/passwd命令查看用户列表,再利用strtok函数解决或者使用getpwuid函数
    • 组ID转化为组名,相关文件/etc/group
  • 如何判断目录名与文件名

代码调试

cp1.c

fileinfo.c

  • 通过调用stat显示出stat中的各项文件信息

filesize.c

  • 通过调用stat,显示stat中的st_size

ls1.c

  • 通过调用readdir读取stat,将stat中的d_name输出

ls2.c

  • 读取文件名和ls1.c相同,通过读取d_name来调用dostat函数产生stat
  • 再用d_name和stat来调用show_file_info
  • 用mode_to_letters和char调用mode_to_letters将文件权限用字符显示
  • uid_to_name显示所属用户
  • gid_to_name显示所属用户组

setecho.c

  • no设置所有命令为不可见
  • yes设置为可见状态

echostate.c

  • 将命令设置成可见状态

spwd.c

testioctl.c

who1.c

  • 读取UTMP_FILE中的用户信息utmp数组,然后将数组中的数据输出

who2.c

  • 代码与who1.c相同,运行结果相同

代码调试中的问题和解决过程

  • 运行cp1时,无法运行
  • 没有输入源文件和目的文件,没有参数函数无法执行

本周代码托管截图

http://git.oschina.net/yg1022/CSAPP2E

其他

  • 本周通过系统调用自己编写了一些Linux系统中已实现功能的代码,通过,man –k | grepman查看函数的基本信息包括函数的作用及返回值等,然后根据这些信息再自己编写代码

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时
第一周 1/2 25/30 学习Linux指令
第二周 50/50 1/3 25/55 Linux系统下的开发环境
第三周 20/70 1/4 25/80 信息的表示和处理
第五周 20/90 1/5 30/110 程序的机器级表示
第六周 20/110 1/6 30/140 处理器体系结构
第七周 20/130 1/7 30/170 存储器层次结构
第八周 0/130 2/9 10/180 期中复习
第九周 48/178 1/10 10/190 系统级I/O、错误处理
第十周 407/585 1/11 10/200 系统调用学习
posted @ 2016-11-18 22:32  20145308刘昊阳  阅读(171)  评论(1编辑  收藏  举报