...one of the most highly
regarded and expertly designed C++ library projects in the
world.
— Herb Sutter and Andrei
Alexandrescu, C++
Coding Standards
Copyright © 2005-2024 Ion Gaztanaga
Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Table of Contents
Boost.Interprocess simplifies the use of common interprocess communication and synchronization mechanisms and offers a wide range of them:
Boost.Interprocess also offers higher-level interprocess mechanisms to allocate dynamically portions of a shared memory or a memory mapped file (in general, to allocate portions of a fixed size memory segment). Using these mechanisms, Boost.Interprocess offers useful tools to construct C++ objects, including STL-like containers, in shared memory and memory mapped files:
There is no need to compile Boost.Interprocess, since it's a header only library. Just include your Boost header directory in your compiler include path.
Boost.Interprocess depends on Boost.DateTime, which needs separate compilation.
However, the subset used by Boost.Interprocess
does not need any separate compilation so the user can define BOOST_DATE_TIME_NO_LIB
to avoid Boost from
trying to automatically link the Boost.DateTime.
In POSIX systems, Boost.Interprocess uses
pthread system calls to implement classes like mutexes, condition variables,
etc... In some operating systems, these POSIX calls are implemented in separate
libraries that are not automatically linked by the compiler. For example,
in some Linux systems POSIX pthread functions are implemented in librt.a
library, so you might need to add that
library when linking an executable or shared library that uses Boost.Interprocess. If you obtain linking errors related
to those pthread functions, please revise your system's documentation to
know which library implements them.
Boost.Interprocess has been tested in the following compilers/platforms:
Warning | |
---|---|
GCC < 4.3 and MSVC < 9.0 are deprecated and will be removed in the next version. |