Я вношу небольшие изменения в существующее существо. Приложение записывает строки текста в буфер, а затем очищает буфер. Я не уверен, когда он действительно пишет текст в файл, но я пытаюсь скопировать все в этом буфере и написать копию всего этого в совершенно другой файл.C Программирование - копирование файлового буфера и запись в файл
Ниже приведена последняя строка письма перед существующим буфером, прежде чем он в конечном итоге назовет fflush()
.
fprintf(_log, "-- FINAL TEXT LINE --\n");
Ниже приведен код, который я использую в попытке скопировать этот буфер в отдельный файл, который динамически с именем в зависимости от времени регистрации. Этот номер custom-%ld.log
еще не существует и должен быть создан.
char tmp[sizeof(_log)];
sprintf(tmp, "custom-%ld.log", (long int)lf->time);
FILE *fp1, *fp2;
char a;
fp1 = _log;
fp2 = fopen(tmp, "a");
if (fp2 != NULL) {
do {
a = fgetc(fp1);
fputc(a, fp2);
} while (a != EOF);
fflush(fp1);
fclose(fp2);
}
fflush(_log);
Я уверен, что мои ошибки очень просты, но я не знаю, что я делаю. Я пробовал десятки предложений на других сайтах и предложения здесь из других вопросов, но мне не повезло.
'символ TMP [SizeOf (_log)];' не выглядит хорошо, учитывая 'FP1 = _log;' и 'FILE * fp1, * fp2; 'впоследствии. Кроме того, 'a = fgetc (fp1);' неверно для 'char a;' – EOF
. Вы описали то, что вы пытаетесь достичь, но каков фактический вопрос для нас? –