我需要对二进制文件执行操作,例如在文件开头编辑多个字节或执行跳过“X次sizeof(int)区域”的写操作。我对实际的代码片段不感兴趣,我应该使用哪些函数,如果可行的话。这是fseek的工作吗?重要的是我不要从我的内存中加载文件中的任何数据。
答案 0 :(得分:2)
是的,这是fseek()
的工作。
在文件中间写入将覆盖现有数据。您需要按照要添加的金额移动所有后续数据。
答案 1 :(得分:1)
您可以使用fseek()
,但也可以查看mmap()
。后者的优点是你不必关心文件中的当前指针,它只是一个你可以使用偏移量导航到的内存区域。
问题:对于Windows没有mmap()
。如果您想插入数据,那么它不是最佳选择。