2009-04-24 17 views
6

Come posso creare oggetti std :: ostream e std :: istream per puntare a un pezzo di memoria che ho allocato e gestito (non voglio che lo stream mi liberi la memoria).C++ stream to memory

Stavo guardando utilizzando rdbuf() -> pubsetbuf() per modificare uno degli altri flussi, ad esempio sstringstream. Comunque penso che lo streambuf usato da stringstream libererà il buffer in seguito?

Fondamentalmente sto provando a serializzare alcune cose nella memoria condivisa.

Grazie.

risposta

7

Date un'occhiata alla classe bufferstream nella biblioteca Boost.Interprocess:

Le classi bufferstream offrono interfaccia iostream con diretta formattazione in un buffer di memoria di dimensione fissa di protezione contro i buffer di overflow.

+0

Ha funzionato. Grazie. – Budric

+0

Sono curioso del voto negativo. Qualcuno ha avuto un problema con questa soluzione? –