Существуют специфичные для ОС решения для записи в буфер памяти вместо файла, как, например, POSIX fmemopen
или open_memstream
(оба должны быть очень полезно, учитывая ваш тег linux
).
Вы также можете изменить свой внутренний буфер с помощью setvbuf
.
На несвязанной ноте: символы, начинающиеся с начального подчеркивания и сопровождаемые другим подчеркиванием (как, например, ваш аргумент __fp
), зарезервированы . Такие символы могут использоваться только «реализацией», то есть компилятором и библиотекой.