Author: Kagula
Last update date: 2016-03-07
例一:进程的数量
#include <iostream>
using namespace std;
#include <boost/interprocess/shared_memory_object.hpp>
#include <boost/interprocess/mapped_region.hpp>
/*
Ttile:测试当前进程的数量
Environment:
[1]Win10
[2]VS2013Update5
[3]CentOS7
[4]GCC 4.8.5
[5]Boost 1.57
*/
#define SHARED_MEMORY_OBJECT_NAME "kagula_process_number"
int main(int argc, char * argv[])
{
boost::interprocess::shared_memory_object shdmem(boost::interprocess::open_or_create, SHARED_MEMORY_OBJECT_NAME, boost::interprocess::read_write);
shdmem.truncate(8);//shdmem.truncate(1024);//设定共享内存大小
std::cout << shdmem.get_name() << std::endl;
boost::interprocess::offset_t size;
if (shdmem.get_size(size))
std::cout << size << std::endl;
boost::interprocess::mapped_region region(shdmem, boost::interprocess::read_write);
int *i1 = static_cast<int*>(region.get_address());
(*i1) += 1;
//打印当前进程的数量
cout << "Number of running process:" << *i1 << endl;
cin.get();
//boost::interprocess::mapped_region region2(shdmem, boost::interprocess::read_only);
//int *i2 = static_cast<int*>(region2.get_address());
//std