由于遗留代码,我fopen
用于写入二进制文件并使用该cstdio (stdio.h)
库,并且它必须与 Windows 和 Linux 跨平台兼容。
对于原型,FILE * fopen ( const char * filename, const char * mode );
我使用的是const char * mode = "ab"
,它将附加到二进制文件中。写入操作在文件末尾追加数据。如果文件不存在,则创建该文件。
我有 N 个输入文件,我在其中处理数据并为每种类型写入一个输出文件,其中我有 M 种类型。我处理一个输入文件并将数据写入每个相应的输出文件。然后,我将关闭第 i 个输入文件并打开 (i + 1) 个,并通过将输入文件中的数据附加到输出文件来重复该过程。
如果可执行文件的开头存在输出文件,我希望将其删除。如果它存在并且我不删除它,那么当我使用该"wb"
模式时,它只会将数据附加到输出文件,这将导致我不想要的重复。我对提升解决方案持开放态度,并且我希望尽可能地保持标准(即尽可能避免使用 POSIX)