wibble  0.1.28
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
wibble::sys::ChildProcess Class Referenceabstract

Fork a child process. More...

#include <childprocess.h>

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

Public Member Functions

 ChildProcess ()
 
virtual ~ChildProcess ()
 
pid_t fork ()
 For a subprocess to run proc. More...
 
pid_t forkAndRedirect (int *stdinfd=0, int *stdoutfd=0, int *stderrfd=0)
 Fork a subprocess to run proc. More...
 
pid_t pid () const
 Get the pid of the child process or (pid_t)-1 if no child is running. More...
 
int wait ()
 Wait for the child to finish, returing its exit status. More...
 
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'. More...
 
void kill (int signal)
 Send the given signal to the process. More...
 

Protected Member Functions

void waitError ()
 
virtual int main ()=0
 Main function to be called in the child process after it has forked. More...
 

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

Referenced by pid().

int wibble::sys::ChildProcess::m_status
protected

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