передача потока stdio другой функции переполнения стека

У меня есть функция, которая открывает и записывает некоторые вещи в поток stdio FILE *. Затем я вызываю другую функцию, которая создаст XML, который я хочу затем записать в тот же поток. Вместо того, чтобы передавать эту строку xml обратно в исходную функцию, потому что она может стать очень большой, могу ли я передать этот открытый поток в функцию xmlbuilder и продолжить запись в тот же поток, и где он остановился, находясь в функции xmlBuilder?

-4

Решение

Конечно, как-то так:

void writeOtherStuff(FILE* pFile)
{
fputs("some more data\n", pFile);
}

void myFunction()
{
FILE* pFile = fopen("myfile.txt", "w");
if (!pFile)
return;
fputs("some data\n", pFile);
writeOtherStuff(pFile);
fclose(pFile);
}
3

Другие решения

Да, ты можешь. Проходя FILE * Указатель не отличается от передачи любого другого типа указателя.

2

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector