我使用指针来指定某种“共享内存”,用于在不同的进程/线程之间交换数据。现在我想要获得共享缓冲区内容的十六进制转储。有人知道如何做吗?
谢谢, R
我使用指针来指定某种“共享内存”,用于在不同的进程/线程之间交换数据。现在我想要获得共享缓冲区内容的十六进制转储。有人知道如何做吗?
谢谢, R
当然要使用强制类型转换 :-) 函数应该长这样:
void Dump( const void * mem, unsigned int n ) {
const char * p = reinterpret_cast< const char *>( mem );
for ( unsigned int i = 0; i < n; i++ ) {
std::cout << hex << int(p[i]) << " ";
}
std::cout << std::endl;
}
然后在使用中:
Foo * f = GetSharedFoo();
Dump( f, somesize );
somesize是您想要转储的大小。
std::setw(2) << std::setfill( os.widen('0') )
插入到流中。但这可能是因为我用任何字符宽度写入流的缘故。 - sbiff
值扩展为 ffffffff
,您可能应该强制转换为 const unsigned char*
。 - Rawler