Итак, у меня есть следующий код с бустом 1.47:
try
{
m_messageQueue = boost::shared_ptr<boost::interprocess::message_queue>(
new boost::interprocess::message_queue (
boost::interprocess::open_or_create
,name.c_str() //name
,numElements //max message number
,sizeof(Message) //max message size
));
}
catch(boost::interprocess::interprocess_exception &e)
{
cerr << e.what();
}
, где name = "test_queue", numElements = 100 и sizeof (Message) = 256.
Вывод: Отказано в разрешении
Если я запускаю от имени пользователя root, оно пройдет.Я не могу понять, где он пытается написать, где у него будет ошибка разрешения.Если посмотреть на код повышения, не должен ли он быть в / tmp / boost_interprocess, к которому любой пользователь мог бы иметь доступ для создания и записи?Кроме того, я заметил https://svn.boost.org/trac/boost/ticket/4250,, но это должно быть исправлено.
Любая помощь будет оценена.