lseek()函数
每个打开的文件都有一个与其相关联的“当前文件偏移量”。通常,读、写操作都是从当前文件偏移量处开始,并使偏移两增加所读写的字节数。按系统默认的情况,当打开一个文件时,除非制定O_APPEND选项,否则该偏移量被设为0。
#include <unistd.h>
off_t lseek(int filedes, off_t offset, int where);
返回值:若成功则返回新的文件偏移量,若出错则返回-1
where:SEEK_SET,SEEK_CUR,SEEK_END。
1. 文件的当前偏移量应当是一个非负整数,但某些设备也可能允许负的偏移量。所以在比较lseek的返回值时,应当谨慎,不要测试它是否小于0,而要测试它是否等于-1.
2. 文件的偏移量可以大于当前文件长度,这种情况下,对该文件的下一次读写将加长该文件,并在文件中构成一个空洞。位于文件中但没有写过的字节都被读为0.
Keep Looking
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步