1.UNIX系统模型内核是操作系统的核心,所以操作系统也被称为内核。Shell本意为“壳”,是操作系统最外面的一层。 2.通过以下三个问题来理解系统编程:(1)它能做什么?(分析程序) (2)它是如何实现的?(学习系统调用) (3)能不能自己编写一个?(编程实现) 例如:who命令的编写 1)首先了解who的作用:显示当前系统中已登录的用户信息; 2)Who命令如何工作: 查看who的联机帮助:(所输入的命令及得到的结果因Linux版本而异,本实验环境为Ubuntu14.04) man who 由此得知,已登录用户的信息存放在/var/run/utmp,继续查看联机帮助: man -k utmp man 5 utmp 即已经得到我们想要的结果,接下来的工作就是打开utmp,然后读取所需字段(具体实现如下)。由于关乎文件的操作,所以需要用到的系统调用及函数大致有:open,read,lseek,close,creat,write。 3)编写一个能实现who命令的函数。总结: 1.对于cp命令,以及第三章中ls命令等的编写,都遵循上述三个问题来实现,通过对这三个问题的解答,来学习目录和文件的类型与属性。 2.对目录的操作:opendir,readdir,closedir 3.stat系统调用 功能:得到文件信息 stat把有path所指的文件的信息复制到buf所致的结构中。例如: 这是一个实现find命令的部分函数,它将指定大小的文件的文件名输出到屏幕,即需用到文件大小,就必须使用stat来获取文件的信息,然后判断该文件的大小是否符合要求。 stat获取的文件信息包括: 即我们可以输出我们想输出的文件的任意信息。 |
|
来自: 拿破仑小子 > 《Kali Linux》