process-cpp
3.0.0
A simple convenience library for handling processes in C++11.
|
Go to the documentation of this file.
19 #ifndef CORE_POSIX_CHILD_PROCESS_H_
20 #define CORE_POSIX_CHILD_PROCESS_H_
26 #include <core/signal.h>
64 static std::unique_ptr<DeathObserver> create_once_with_signal_trap(
65 std::shared_ptr<SignalTrap> trap);
90 virtual const core::Signal<ChildProcess>& child_died()
const = 0;
95 virtual void on_sig_child() = 0;
120 std::istream&
cerr();
130 std::istream&
cout();
139 static Pipe invalid();
142 Pipe(
const Pipe& rhs);
145 Pipe& operator=(
const Pipe& rhs);
148 void close_read_fd();
150 int write_fd()
const;
151 void close_write_fd();
164 std::shared_ptr<Private> d;
169 #endif // CORE_POSIX_CHILD_PROCESS_H_
#define CORE_POSIX_DLL_LOCAL
CORE_POSIX_DLL_PUBLIC ChildProcess vfork(const std::function< posix::exit::Status()> &main, const StandardStream &flags)
fork vforks a new process and executes the provided main function in the newly forked process.
StandardStream
The StandardStream enum wraps the POSIX standard streams.
#define CORE_POSIX_DLL_PUBLIC
The DeathObserver class observes child process' states and emits a signal when a monitored child has ...
Status
The Status enum wrap's the posix exit status.
The Result struct encapsulates the result of waiting for a process state change.
CORE_POSIX_DLL_PUBLIC std::ostream & cerr() noexcept(true)
Access this process's stderr.
CORE_POSIX_DLL_PUBLIC ChildProcess fork(const std::function< posix::exit::Status()> &main, const StandardStream &flags)
fork forks a new process and executes the provided main function in the newly forked process.
The Process class models a child process of this process.
CORE_POSIX_DLL_PUBLIC std::istream & cin() noexcept(true)
Access this process's stdin.
CORE_POSIX_DLL_PUBLIC std::ostream & cout() noexcept(true)
Access this process's stdout.
The Process class models a process and possible operations on it.
Flags
Flags enumerates different behavior when waiting for a child process to change state.