我会在共享内存中保留一些数据,使用命名信号量来管理访问:
#include <boost/interprocess/sync/named_semaphore.hpp>
struct shared_memory_buffer
{
// Application data
int items[10];
// Synchronization data
boost::interprocess::named_semaphore syncSem;
shared_memory_buffer()
: syncSem(boost::interprocess::open_or_create_t, "testSemaphore", 0) // error
{}
};
但是我在指定的行收到以下编译时错误:
error: expected primary-expression before ‘,’ token
这是我的系统:
MacOS X 10.6
i686-apple-darwin10-g ++ - 4.2.1(GCC)4.2.1(Apple Inc. build 5664)
提升1.44
谢谢!
答案 0 :(得分:6)
boost::interprocess::open_or_create_t
是一种类型 - 您可能希望传递boost::interprocess::open_or_create
,当然这是 open_or_create_t
的实例。记录在案here。