编程实践手册2 - DDL-Killer/The-road-of-Linxu-Group2024 GitHub Wiki
文件读写
注销过程:如何工作
- 打开文件utmp
- 从utmp中找到包含你所在终端的登录记录
- 对当前记录做修改
- 关闭文件
详细步骤
- 打开文件
- fd = open(UTMP_FILE,O_RDWR);
- 从utmp中找到包含你所在终端的登录记录
- 用while循环中读取一条utmp记录,将它的ut_line字段跟你的终端名称作比较,如果相等则调用修改函数
- while(read(fd,rec,utmpelen) == utmplen)
- if(strcmp(rec.ut_line,myline) == 0){revise_entry();}
- 对当前记录进行修改
- 负责注销的程序修改当前记录,再把它写回到文件utmp中
- 文件操作中,要改变一个文件的当前读/写位置,需要使用系统调用:lseek
- 关闭文件
- 调用close(fd)
改变文件的当前位置
- lseek
- 偏移量可以是负的