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

Execute external commands, either forked as a ChildProcess or directly using exec(). More...

#include <exec.h>

Inheritance diagram for wibble::sys::Exec:
Inheritance graph
[legend]
Collaboration diagram for wibble::sys::Exec:
Collaboration graph
[legend]

List of all members.

Public Member Functions

virtual ~Exec ()
 Exec (const std::string &pathname)
 Create a new object that will execute program `program'.
void importEnv ()
 Import the current environment into env.
void exec ()
 exec the program, never returning if all goes well
- Public Member Functions inherited from wibble::sys::ChildProcess
 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.

Public Attributes

std::string pathname
 Filename or pathname of the program to execute.
std::vector< std::string > args
 Arguments for the process to execute.
std::vector< std::string > env
 Custom environment for the child process, if envFromParent is false.
bool envFromParent
 True if the environment is to be taken from the parent, false if it is explicitly provided in env.
bool searchInPath
 Set to true if the file is to be searched in the current $PATH.

Protected Member Functions

virtual int main ()
 Used to run the program as a child process, if one of the ChildProcess::fork functions is called.
- Protected Member Functions inherited from wibble::sys::ChildProcess
void waitError ()

Additional Inherited Members

- Protected Attributes inherited from wibble::sys::ChildProcess
pid_t _pid
int m_status

Detailed Description

Execute external commands, either forked as a ChildProcess or directly using exec().


Constructor & Destructor Documentation

virtual wibble::sys::Exec::~Exec ( )
inlinevirtual
wibble::sys::Exec::Exec ( const std::string &  pathname)
inline

Create a new object that will execute program `program'.

References args.


Member Function Documentation

void wibble::sys::Exec::exec ( )

exec the program, never returning if all goes well

References args, env, envFromParent, environ, pathname, and searchInPath.

Referenced by main().

void wibble::sys::Exec::importEnv ( )

Import the current environment into env.

References env, and environ.

int wibble::sys::Exec::main ( )
protectedvirtual

Used to run the program as a child process, if one of the ChildProcess::fork functions is called.

Simply calls exec()

Implements wibble::sys::ChildProcess.

References exec().


Member Data Documentation

std::vector<std::string> wibble::sys::Exec::args

Arguments for the process to execute.

args[0] will be passed as the name of the child process

Referenced by Exec(), exec(), and wibble::sys::ShellCommand::ShellCommand().

std::vector<std::string> wibble::sys::Exec::env

Custom environment for the child process, if envFromParent is false.

Referenced by exec(), and importEnv().

bool wibble::sys::Exec::envFromParent

True if the environment is to be taken from the parent, false if it is explicitly provided in env.

Referenced by exec(), and wibble::sys::ShellCommand::ShellCommand().

std::string wibble::sys::Exec::pathname

Filename or pathname of the program to execute.

If searchInPath is true, this just needs to be the file name. Otherwise, it needs to be the absolute path of the file to execute.

Referenced by exec().

bool wibble::sys::Exec::searchInPath

Set to true if the file is to be searched in the current $PATH.

If this is set to true, the environment will always be taken from the parent regardless of the values of envFromParent and env.

Referenced by exec(), and wibble::sys::ShellCommand::ShellCommand().


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