Unix/Linux 编程实践教程 第一章小结
who 命令通过读系统日志的内容显示当前已经登录的用户。
Unix 系统把数据存放在文件中,可以通过以下系统调用操作文件:
open(filename, how) //打开文件,返回文件描述符
creat(filename, mode) //存在就清空,没有就创建
read(fd, buffer, amt) //读取
write(fd, buffer, amt) //写
lseek(fd, distance, base) //移动指针的位置
close(fd) //关闭文件
• 进程对文件的读/写都要通过文件描述符,文件描述符表示文件和进程之间的连接。
• 每次系统调用都会导致用户模式和内核模式的切换以及执行内核代码,所以减少程序中的系统调用发生的次数可以提高程序的运行效率。
• 程序可以通过缓冲技术来减少系统调用的次数,仅当写缓冲区满或读缓冲区空时才调用内核服务。
• Unix 内核可以通过内核缓冲来减少访问磁盘I/O的次数。
• Unix 中时间的处理方式是记录从某一个时间开始经过的秒数。
• 当系统调用出错时会把全局变量 errno 的值设为相应的错误代码,然后返回 1 ,程序可以通过检查 errno 来确定错误的类型,并采取相应的措施。
• 这一章涉及的知识在系统中都可以找到,联机帮助中有命令的说明,有些还会攒及命令的实现,头文件中有结构和系统常量的定义,还有函数原型的说明。