wibble 0.1.28
Public Member Functions | Protected Member Functions | Protected Attributes
wibble::sys::ChildProcess Class Reference

Fork a child process. More...

#include <childprocess.h>

Inheritance diagram for wibble::sys::ChildProcess:
Inheritance graph
[legend]

List of all members.

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

Detailed Description

Fork a child process.


Constructor & Destructor Documentation

wibble::sys::ChildProcess::ChildProcess ( ) [inline]
virtual wibble::sys::ChildProcess::~ChildProcess ( ) [inline, virtual]

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 ( ) [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 ( 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

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

void wibble::sys::ChildProcess::waitError ( ) [protected]
void wibble::sys::ChildProcess::waitForSuccess ( )

Member Data Documentation

Referenced by pid().


The documentation for this class was generated from the following file: