Я использую fopen
для записи в двоичный файл и используя библиотеку cstdio (stdio.h)
из-за устаревшего кода, и он должен быть кросс-платформенным, совместимым с Windows и Linux.Перезаписать файл, используя режим append для fopen
Для прототипа FILE * fopen (const char * filename, const char * mode);
, я использую const char * mode = "ab"
, который будет добавляться к двоичному файлу. Операции записи добавляют данные в конце файла. Файл создается, если он не существует.
У меня есть N количество входных файлов, в которых я обрабатываю данные и записываю их в один выходной файл для каждого типа, где у меня есть M типов. Я обрабатываю один входной файл и записываю данные в каждый соответствующий выходной файл. Затем я закрою этот входной файл и откройте (i + 1) th и повторю процесс, добавив данные из входного файла в выходные файлы.
Если выходной файл существует в начале исполняемого файла, я хочу его удалить. Если он существует, и я его не удаляю, тогда, когда я использую режим "wb"
, он просто добавит данные в выходной файл, что приведет к дублированию, которое я не хочу. Я открыт для решения повышающего и мне нравится поддерживать стандарты как можно лучше (т.е. избежать POSIX, если это возможно)
держись, вы или не вы хотите его переписать? вы хотите, чтобы он добавил, что там? пожалуйста, уточните, что вы хотели бы сделать в случаях «уже существует» и «еще не существует» ... – eruciform
Попробуйте уточнить свою цель более четко, я не могу сказать с вашего поста и кода, если вы хотите перезаписать (удалить) существующие файлы или избежать этого. Кроме того, ваш код не имеет большого смысла, потому что открытие существующего файла в режиме записи приведет к его удалению. – schnaader