]>
Commit | Line | Data |
---|---|---|
b32b8144 FG |
1 | // Copyright (c) 2016 Klemens D. Morgenstern |
2 | // | |
3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying | |
4 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) | |
5 | #ifndef BOOST_PROCESS_POSIX_HPP_ | |
6 | #define BOOST_PROCESS_POSIX_HPP_ | |
7 | ||
8 | #include <boost/process/detail/posix/fd.hpp> | |
9 | #include <boost/process/detail/posix/handler.hpp> | |
10 | #include <boost/process/detail/posix/use_vfork.hpp> | |
11 | #include <boost/process/detail/posix/signal.hpp> | |
12 | ||
13 | ||
14 | /** \file boost/process/posix.hpp | |
15 | * | |
16 | * Header which provides the posix extensions. | |
17 | \xmlonly | |
18 | <programlisting> | |
19 | namespace boost { | |
20 | namespace process { | |
21 | namespace posix { | |
22 | <emphasis>unspecified</emphasis> <globalname alt="boost::process::posix::fd">fd</globalname>; | |
23 | <emphasis>unspecified</emphasis> <globalname alt="boost::process::posix::sig">sig</globalname>; | |
24 | <emphasis>unspecified</emphasis> <globalname alt="boost::process::posix::use_vfork">use_vfork</globalname>; | |
25 | } | |
26 | } | |
27 | } | |
28 | </programlisting> | |
29 | * \endxmlonly | |
30 | * \warning Only available on posix. See the documentation of [fork](http://pubs.opengroup.org/onlinepubs/009695399/functions/fork.html), | |
31 | * [execve](http://pubs.opengroup.org/onlinepubs/009695399/functions/execve.html) and | |
32 | * [vfork](http://pubs.opengroup.org/onlinepubs/009695399/functions/vfork.html). | |
33 | * | |
34 | */ | |
35 | ||
36 | namespace boost { namespace process { | |
37 | ||
38 | ///Namespace containing the posix exensions. | |
39 | namespace posix { | |
40 | ||
41 | /** This property lets you modify file-descriptors other than the standard ones (0,1,2). | |
42 | * | |
43 | * It provides the functions `bind`, which implements [dup2](http://pubs.opengroup.org/onlinepubs/9699919799/functions/dup.html) | |
44 | * and [close](http://pubs.opengroup.org/onlinepubs/9699919799/functions/close.html). | |
45 | * | |
46 | * Close can also be called with a range of file-descriptors to be closed. | |
47 | * | |
48 | */ | |
49 | constexpr ::boost::process::detail::posix::fd_ fd; | |
50 | ||
51 | /** This property lets you modify the handling of `SIGCHLD` for this call. It will be reset afterwards. | |
52 | ||
53 | It can be set to default, by the expression `sig.dfl()`, set to ignore with `sig.ign()` or | |
54 | assigned a custom handler. A custom handler must have the type `sighandler_t`and can be assigned with the following syntax: | |
55 | ||
56 | \code{.cpp} | |
57 | sig = handler; | |
58 | sig(handler); | |
59 | \endcode | |
60 | ||
61 | \warning @ref spawn will automatically use `sig.ign()`, which will override if you pass a custom handler. | |
62 | */ | |
63 | constexpr ::boost::process::detail::posix::sig_ sig; | |
64 | /** This property will replace the usage of [fork](http://pubs.opengroup.org/onlinepubs/9699919799/functions/fork.html) by [vfork](http://pubs.opengroup.org/onlinepubs/009695399/functions/vfork.html). | |
65 | \note `vfork` is no longer an official part of the posix standard. | |
66 | ||
67 | */ | |
68 | constexpr ::boost::process::detail::posix::use_vfork_ use_vfork; | |
69 | ||
70 | ||
71 | using ::boost::process::detail::posix::sighandler_t; | |
72 | ||
73 | }}} | |
74 | ||
75 | #endif /* BOOST_PROCESS_POSIX_HPP_ */ |