std 流写入 void* 并返回
std streams to write to void* and back
如何让 fstream 写入空指针?
基本上,我使用过MapFileView,并从中获得了共享内存的空指针。
我使用 copymemory 在两个单独的应用程序之间来回复制一堆数据。
现在,我想使用 std 库通过重载读取结构<<并将其写入我的映射内存(Local\MyMemMap,invalid_handle),然后通过重载读回>>。它不是您可以看到的物理文件。
基本上,如果可能的话,我想将ifstream和ofstream重定向到我的void*。否则,还有哪些其他 std 流允许我使用指针和运算符重载?
我只知道istream,osstream。
运算符<<和运算符>>用于格式化输入和输出。听起来您正在读取和写入原始字节。你应该使用 istream::read 和 ostream::write 来形容。
这是自 C++98 以来弃用 std::strstream
但尚未从 C++11 标准中删除的原因。对于它的大部分使用(std::stringstream
),有一个更好的替代方案,但没有标准的替代品来替代使用固定缓冲区的可能性。你不必自己写std::streambuf
,只需使用
#include <strstream>
std::strstream memostream(reinterpret_cast<char*>(mem), memsize, reinterpret_cast<char*>(mem));
将流写入内存定位为在开始时写入。和
std::strstream memistream(reinterpret_cast<char*>(mem), memsize);
用于在开始时进行流读取。
听起来您想编写一个自定义流来从映射的内存中读取和写入。此网页可能会有所帮助。
相关文章:
- QNX Momentics: GoogleMock - 返回有价值,在函数中返回 void 错误
- 为什么新表达式可以正确生成指针类型,即使它应该返回 void*?
- 如何声明接受字符串、返回void的闭包的类型
- void *function() 是指向函数的指针还是返回 void* 的函数?
- return 语句,该语句调用在返回 void 的函数中返回 void 的函数
- GCC 9.1 返回 void& 作为显式析构函数调用的结果类型。这是一个错误吗?
- 分配运算符过载:返回void与返回参考参数
- 为什么平行std :: for_each返回void
- 传递返回 void * 作为参数的函数
- 如何验证 LLVM "ret"指令是否返回 void?
- 返回 void 或对自我的引用
- CRTP和返回void的方法*
- 为什么不允许虚方法返回 void 指针
- 为什么 std::fstream 返回 void 而不是 bool
- 重载运算符 = 返回 void 是否不可能成为复制赋值运算符
- C++:从void函数返回void函数的返回值
- 将返回void的函数传递给接受void的函数
- 返回 void 的模板函数
- 带有值的递归阶乘错误返回语句,在函数中返回 'void' [-fallowive]
- 从方法返回 void 以防止执行