可以使用带有memcpy的istream

时间:2012-12-31 12:56:52

标签: c++ boost stream buffer

我正在开发一个C ++应用程序,它使用一个用C语言编写的库(StormLib)。该库具有将文件读取到void* buffer的功能(我猜是char[])。我想将其发送到另一个要处理的库。希望可以使用boost::iostreams::stream_bufferboost::asio::streambuf之类的东西来存储文件,以便通过任何方法需要来读取。

我试过简单地将一个istream(有一个boost::asio::streambuf打开)传递给该函数,它在尝试执行时给了我一个BADACCESS

memcpy((theFile),(myiStream),(full size of the file))

我基本上喜欢某种“包位”对象,可以很容易地转换为不同的方法来以结构化方式转换数据,但我不知道应该如何实现它。

1 个答案:

答案 0 :(得分:0)

在使用C ++将数据恢复后,您想对数据做什么?如果你只是想要原始数据,那么你可以(例如)创建一个std::vector<char>resize,这样它就足以容纳所有数据 * ,然后通过指向其第一个元素的指针。

<小时/> *如何确定“足够大”是一个不同的问题......