| Home | Libraries | People | FAQ | More

## Class file_mapping

boost::interprocess::file_mapping

## Synopsis

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

    class file_mapping {
    public:

      // public member functions
      file_mapping() noexcept;
      file_mapping(const char *, mode_t);
      file_mapping(const wchar_t *, mode_t);
      file_mapping(file_mapping &&) noexcept;
      file_mapping & operator=(file_mapping &&) noexcept;
      void swap(file_mapping &) noexcept;
      mode_t get_mode() const noexcept;
      mapping_handle_t get_mapping_handle() const noexcept;
      ~file_mapping();
      const char * get_name() const noexcept;
      bool get_size(offset_t &) const noexcept;

      // public static functions
      static bool remove(const char *);
      static bool remove(const wchar_t *);
    };

## Description

A class that wraps a file-mapping that can be used to create mapped regions from the mapped files

### `file_mapping` public member functions

1.     file_mapping() noexcept;

   Constructs an empty file mapping. Does not throw

2.     file_mapping(const char * filename, mode_t mode);

   Opens a file mapping of file "filename", starting in offset "file_offset", and the mapping's size will be "size". The mapping can be opened for read-only "read_only" or read-write "read_write" modes. Throws interprocess_exception on error.

3.     file_mapping(const wchar_t * filename, mode_t mode);

   Opens a file mapping of file "filename", starting in offset "file_offset", and the mapping's size will be "size". The mapping can be opened for read-only "read_only" or read-write "read_write" modes. Throws interprocess_exception on error.

   Note: This function is only available on operating systems with native wchar_t APIs (e.g. Windows).

4.     file_mapping(file_mapping && moved) noexcept;

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

5.     file_mapping & operator=(file_mapping && moved) noexcept;

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

6.     void swap(file_mapping & other) noexcept;

   Swaps to file_mappings. Does not throw.

7.     mode_t get_mode() const noexcept;

   Returns access mode used in the constructor

8.     mapping_handle_t get_mapping_handle() const noexcept;

   Obtains the mapping handle to be used with mapped_region

9.     ~file_mapping();

   Destroys the file mapping. All mapped regions created from this are still valid. Does not throw

10.     const char * get_name() const noexcept;

    Returns the name of the file used in the constructor.

11.     bool get_size(offset_t & size) const noexcept;

    Returns true if the size of the file memory object can be obtained and writes the size in the passed reference.

### `file_mapping` public static functions

1.     static bool remove(const char * filename);

   Removes the file named "filename" even if it's been memory mapped. Returns true on success. The function might fail in some operating systems if the file is being used other processes and no deletion permission was shared.

2.     static bool remove(const wchar_t * filename);

   Removes the file named "filename" even if it's been memory mapped. Returns true on success. The function might fail in some operating systems if the file is being used other processes and no deletion permission was shared.

   Note: This function is only available on operating systems with native wchar_t APIs (e.g. Windows).