piffy icon

Boost Interprocess

piffy | PRO | 07/19/21 12:52:48 PM UTC | 0 ⭐ | 1346 👁️ | Never ⏰ | []
C++ |

1.01 KB

|

None

|

0 👍

/

0 👎

#include <boost/interprocess/shared_memory_object.hpp>
#include <boost/interprocess/mapped_region.hpp>
#include <iostream>
 
//Compilare con g++ boostshm.cpp -lrt -lpthread
 
 
using namespace boost::interprocess;
 
int main()
{
  shared_memory_object shdmem{open_or_create, "Boost", read_write};
  shdmem.truncate(1024);
  std::cout << shdmem.get_name() << '\n';
  offset_t size;
  if (shdmem.get_size(size))
    std::cout << size << '\n';
  mapped_region region{shdmem, read_write};
  std::cout << std::hex << region.get_address() << '\n';
  std::cout << std::dec << region.get_size() << '\n';
  mapped_region region2{shdmem, read_only};
  std::cout << std::hex << region2.get_address() << '\n';
  std::cout << std::dec << region2.get_size() << '\n';
  int *i1 = static_cast<int*>(region.get_address());
  *i1 = 42;
  int *i2 = static_cast<int*>(region2.get_address());
  std::cout << *i2 << '\n';
  bool removed = shared_memory_object::remove("Boost");
  std::cout << std::boolalpha << removed << '\n';
}

Comments