Это должно быть довольно распространенным, но я нахожу его увлекательным, что я не нашел прямого решения.
В основном я читаю в файле по сети в строковый поток. Это объявление:
std::stringstream membuf(std::ios::in | std::ios::out | std::ios::binary);
Теперь у меня есть библиотека C, которая хочет прямого доступа к считываемому фрагменту памяти. Как мне это получить? Доступ только для чтения в порядке. После выполнения функции C я избавляюсь от memystream, не нуждаюсь в этом.
str()
копирует буфер, который кажется лишним, и удваивает память.
Я пропустил что-то очевидное? Может быть, другой класс stl будет работать лучше.
Edit: По-видимому, строковый поток не гарантируется постоянным сохранением. Что такое?
если я использую vector<char>
, как я могу получить буфер байта?