wibble::sys::ChildProcess Class Reference

Fork a child process. More...

#include <childprocess.h>

Inheritance diagram for wibble::sys::ChildProcess:
[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.

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:
Generated on Wed May 12 10:50:19 2010 for wibble by  doxygen 1.6.3