Как преобразовать файловый поток в строку в C? - PullRequest
0 голосов
/ 14 сентября 2018

Я использую системную функцию, которая записывает выходные данные в поток файлового указателя.

func(FILE *__fp)

Мне нужно использовать эту информацию в моей программе, а не распечатывать ее в файл. Для этого я подумал о создании tmpfile() и записи в него, а затем о нем читал. Но есть ли лучший способ получить эту информацию?

1 Ответ

0 голосов
/ 14 сентября 2018

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

Вы также можете изменить свой внутренний буфер с помощью setvbuf.


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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...