Boost C++ Libraries of the most highly regarded and expertly designed C++ library projects in the world. Herb Sutter and Andrei Alexandrescu, C++ Coding Standards

This is the documentation for an old version of Boost. Click here to view this page for the latest version.

Class xsi_shared_memory



// In header: <boost/interprocess/xsi_shared_memory.hpp>

class xsi_shared_memory {
  // construct/copy/destruct
  xsi_shared_memory(open_only_t, int);
  xsi_shared_memory(open_only_t, const xsi_key &);
  xsi_shared_memory& operator=(xsi_shared_memory &&);

  // public member functions
  void swap(xsi_shared_memory &);
  int get_shmid() const;
  mapping_handle_t get_mapping_handle() const;

  // public static functions
  static bool remove(int);

  // public data members


A class that wraps XSI (System V) shared memory. Unlike shared_memory_object, xsi_shared_memory needs a valid xsi_key to identify a shared memory object.

Warning: XSI shared memory and interprocess portable shared memory (boost::interprocess::shared_memory_object) can't communicate between them.

xsi_shared_memory public construct/copy/destruct

  1. xsi_shared_memory();

    Default constructor. Represents an empty xsi_shared_memory.

  2. xsi_shared_memory(open_only_t, int shmid);

    Initializes *this with a shmid previously obtained (possibly from another process) This lower-level initializer allows shared memory mapping without having a key.

  3. xsi_shared_memory(open_only_t, const xsi_key & key);

    Creates a new XSI shared memory from 'key', with size "size" and permissions "perm". If the shared memory previously exists, throws an error. Opens an existing shared memory with identifier 'key' or creates a new XSI shared memory from identifier 'key', with size "size" and permissions "perm". Tries to open a XSI shared memory with identifier 'key' If the shared memory does not previously exist, it throws an error.

  4. xsi_shared_memory& operator=(xsi_shared_memory && moved);

    Moves the ownership of "moved"'s shared memory to *this. After the call, "moved" does not represent any shared memory. Does not throw

  5. ~xsi_shared_memory();

    Destroys *this. The shared memory won't be destroyed, just this connection to it. Use remove() to destroy the shared memory.

xsi_shared_memory public member functions

  1. void swap(xsi_shared_memory & other);
    Swaps two xsi_shared_memorys. Does not throw.
  2. int get_shmid() const;

    Returns the shared memory ID that identifies the shared memory

  3. mapping_handle_t get_mapping_handle() const;

    Returns the mapping handle. Never throws

xsi_shared_memory public static functions

  1. static bool remove(int shmid);

    Erases the XSI shared memory object identified by shmid from the system. Returns false on error. Never throws

xsi_shared_memory public public data members

  1.  __pad0__;

    Moves the ownership of "moved"'s shared memory object to *this. After the call, "moved" does not represent any shared memory object. Does not throw