1、用户注销过程
用户注销过程总共包括4步:
1、打开utmp文件
2、在文件中找到你所在终端的登录记录
3、对当前记录做修改
4、关闭文件
但是,对于write或者read系统调用,都只能顺序读取,或者顺序写入,没有办法读出个一个数据,然后再回头修改它。
这时,我们需要使用lseek系统调用来改变当前打开文件的指针位置。指针是与文件描述符相关联的,而不是文件关联,所以如果同一个文件被2个程序打开,这时会有两个指针,两个程序的读取操作互不影响。
2、 系统调用lseek改变文件指针位置
系统调用lseek可以改变已打开文件的当前位置。
lseek | |
目标 | 使指针指向文件中的指定位置 |
头文件 | #include<sys/type.h> #include<unistd.h> |
函数原型 | off_t oldpos = lseek(int fd, off_t dist, int base) |
参数 | fd 文件描述符 dist 移动的距离 base SEEK_SET => 文件的开始 SEEK_CUR => 当前位置 SEEK_END => 文件结尾 |
返回值 |