Fork a child process.
More...
#include <childprocess.h>
Public Member Functions |
| ChildProcess () |
virtual | ~ChildProcess () |
pid_t | fork () |
| For a subprocess to run proc.
|
pid_t | forkAndRedirect (int *stdinfd=0, int *stdoutfd=0, int *stderrfd=0) |
| Fork a subprocess to run proc.
|
pid_t | pid () const |
| Get the pid of the child process or (pid_t)-1 if no child is running.
|
int | wait () |
| Wait for the child to finish, returing its exit status.
|
bool | running () |
int | exitStatus () |
void | waitForSuccess () |
int | wait (struct rusage *ru) |
| Wait for the child to finish, returing its exit status and storing resource usage informations in `ru'.
|
void | kill (int signal) |
| Send the given signal to the process.
|
Protected Member Functions |
void | waitError () |
virtual int | main ()=0 |
| Main function to be called in the child process after it has forked.
|
Detailed Description
Constructor & Destructor Documentation
wibble::sys::ChildProcess::ChildProcess |
( |
| ) |
|
|
inline |
virtual wibble::sys::ChildProcess::~ChildProcess |
( |
| ) |
|
|
inlinevirtual |
Member Function Documentation
int wibble::sys::ChildProcess::exitStatus |
( |
| ) |
|
pid_t wibble::sys::ChildProcess::fork |
( |
| ) |
|
For a subprocess to run proc.
pid_t wibble::sys::ChildProcess::forkAndRedirect |
( |
int * |
stdinfd = 0 , |
|
|
int * |
stdoutfd = 0 , |
|
|
int * |
stderrfd = 0 |
|
) |
| |
Fork a subprocess to run proc.
If one of the std*fd variables is non-null, create a pipe connected to the corresponding file descriptor of the child process and store the parent end in the std*fd variable.
void wibble::sys::ChildProcess::kill |
( |
int |
signal | ) |
|
Send the given signal to the process.
virtual int wibble::sys::ChildProcess::main |
( |
| ) |
|
|
protectedpure virtual |
Main function to be called in the child process after it has forked.
Implemented in wibble::sys::Exec.
pid_t wibble::sys::ChildProcess::pid |
( |
| ) |
const |
|
inline |
Get the pid of the child process or (pid_t)-1 if no child is running.
Note: while ChildProcess::kill() has a safeguard against killing pid -1, if you are going to run ::kill on the output of pid() make sure to check what is the semanthics of kill() when pid is -1.
References _pid.
bool wibble::sys::ChildProcess::running |
( |
| ) |
|
int wibble::sys::ChildProcess::wait |
( |
| ) |
|
Wait for the child to finish, returing its exit status.
Return -1 if no child is running. TODO: gracefully handle the EINTR error code
int wibble::sys::ChildProcess::wait |
( |
struct rusage * |
ru | ) |
|
Wait for the child to finish, returing its exit status and storing resource usage informations in `ru'.
Return -1 if no child is running. TODO: gracefully handle the EINTR error code
void wibble::sys::ChildProcess::waitError |
( |
| ) |
|
|
protected |
void wibble::sys::ChildProcess::waitForSuccess |
( |
| ) |
|
Member Data Documentation
pid_t wibble::sys::ChildProcess::_pid |
|
protected |
int wibble::sys::ChildProcess::m_status |
|
protected |
The documentation for this class was generated from the following file: