boost::interprocess::shared_memory_object::truncate
shared_memory的truncate作用是什么?
注释:Sets the size of the shared memory mapping.
1.当一个共享内存对象被创建了,它的大小是0。为了设置共享内存的大小,使用者需在一个已经以读写方式打开的共享内存中调用truncate 函数:shm_obj.truncate(10000);
所以当创建共享内存时:m_object = boost::interprocess::shared_memory_object(open_or_create,sname,read_write);
此时大小是0,使用时,需要初始化内存:m_object.truncate(1024);
https://www.boost.org/doc/libs/1_49_0/doc/html/boost/interprocess/shared_memory_object.html
2.当共享内存已经创建过,并没主动销毁,它的大小可能不为0,此时 m_object.truncate(1024);是没有作用的,那块已经被使用过的内容也不会被初始化。