Эквивалент open_memstream для MSVC - PullRequest
9 голосов
/ 19 мая 2010

Я использую open_memstream в моей библиотеке, но я хотел бы перенести эту библиотеку в MSVC. Кажется, что нет эквивалентной функции, но есть ли что-то похожее?

Что open_memstream делает, это берет char ** назначение и размер и возвращает FILE *, в который вы много пишете, данные хранятся в динамически распределенном буфере (доступном из аргумента char ** ). При закрытии ФАЙЛА символ ** содержит данные, которые были записаны в поток. Это упрощает создание больших и сложных струнных потоков.

Хотя можно читать и искать из потока сообщений, я только пишу в него.

Есть ли способ открыть подобный поток ФАЙЛА памяти в MSVC? Кроме того, это чистый C, без C ++.

1 Ответ

2 голосов
/ 19 мая 2010

Аналогичной функцией в Windows была бы CreateStreamOnHGlobal (). Это, однако, работает с интерфейсом IStream COM, оно не является заменой FILE. Возможно, вы захотите взглянуть на исходный код Cygwin, чтобы увидеть, что они сделали.

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