wibble
0.1.28
|
Execute external commands, either forked as a ChildProcess or directly using exec(). More...
#include <exec.h>
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 | |
![]() | |
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. | |
![]() | |
void | waitError () |
Additional Inherited Members | |
![]() | |
pid_t | _pid |
int | m_status |
Execute external commands, either forked as a ChildProcess or directly using exec().
|
inlinevirtual |
|
inline |
Create a new object that will execute program `program'.
References args.
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 | ( | ) |
|
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().
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().