什么是 seek 函数?
seek() 是编程中用于移动文件读写指针位置的重要函数。它允许开发者在不重新打开文件的情况下,跳转到文件中的任意位置进行读取或写入操作。
常见语言中的 seek 函数
Python 中的 seek()
在 Python 中,file.seek(offset[, whence]) 方法用于设置文件指针的位置:
offset:偏移量(字节数)whence:起始位置(0=文件开头,1=当前位置,2=文件末尾)
f = open('example.txt', 'r')
f.seek(10) # 跳到第10个字节
print(f.read(5)) # 从第10字节开始读5个字符
f.close()
C 语言中的 fseek()
在 C 语言中,使用 fseek(FILE *stream, long offset, int origin) 实现类似功能:
FILE *fp = fopen("example.txt", "r");
fseek(fp, 10, SEEK_SET); // 从文件开头跳10字节
char buffer[6];
fread(buffer, 1, 5, fp);
buffer[5] = '\0';
printf("%s", buffer);
fclose(fp);
典型应用场景
- 日志文件的尾部追加读取(结合
seek(0, 2)) - 二进制文件的随机访问(如图像、数据库文件)
- 实现文件内容的快速跳转与分段处理
注意事项
- 文本模式下某些系统对
seek支持有限,建议在二进制模式('rb')中使用 - 不要对已关闭的文件调用
seek - 跨平台时注意换行符差异可能影响偏移计算