Есть код, который маппит шаред мемори:
namespace ipc = boost::interprocess;
sharedMemPool = new ipc::shared_memory_object( ipc::open_only, SHMEM_NAME, ipc::read_only );
mappedRegion = new ipc::mapped_region( *sharedMemPool, ipc::read_only )
В линуксах я делаю следующим образом:
char line[256] = { '\0' }; /* /path/to/shmem */
std::ostringstream command;
command << "lsof -Fn -p" << getpid() << "|grep " << SHMEM_NAME;
FILE *cmd = popen( command.str().c_str(), "r" );
fgets( line, sizeof(line), cmd );
pclose( cmd );