我有一个代码中的情况,其中有一个巨大的函数可以逐行解析记录,验证并写入另一个文件。
如果文件中有错误,它会调用另一个拒绝记录并写入拒绝原因的函数。
由于程序中的内存泄漏,它与 SIGSEGV 一起崩溃。从崩溃的地方“重新启动”文件的一种解决方案是将最后处理的记录写入一个简单文件。
为此,需要将处理循环中的当前记录号写入文件。如何确保数据在循环内的文件上被覆盖?
使用 fseek 在循环中首先定位/倒带会降低性能吗?
记录的数量可能很多,有时(高达 500K)。
谢谢。
编辑:内存泄漏已经修复。重新启动解决方案被建议作为一种额外的安全措施和手段,以提供重新启动机制以及 SKIP n 记录解决方案。很抱歉没有早点提及。