|
wibble
0.1.28
|
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. | |
Protected Attributes | |
| pid_t | _pid |
| int | m_status |
Fork a child process.
| wibble::sys::ChildProcess::ChildProcess | ( | ) | [inline] |
| virtual wibble::sys::ChildProcess::~ChildProcess | ( | ) | [inline, virtual] |
| 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 | ( | ) | [protected, pure 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] |
pid_t wibble::sys::ChildProcess::_pid [protected] |
Referenced by pid().
int wibble::sys::ChildProcess::m_status [protected] |
1.7.6.1