KDECore
KProcess Class Reference
#include <KProcess>

Detailed Description
Child process invocation, monitoring and control.This class extends QProcess by some useful functionality, overrides some defaults with saner values and wraps parts of the API into a more accessible one. This is the preferred way of spawning child processes in KDE; don't use QProcess directly.
Definition at line 44 of file kprocess.h.
Public Types | |
enum | OutputChannelMode { SeparateChannels = QProcess::SeparateChannels, MergedChannels = QProcess::MergedChannels, ForwardedChannels = QProcess::ForwardedChannels, OnlyStdoutChannel, OnlyStderrChannel } |
Public Member Functions | |
void | clearEnvironment () |
void | clearProgram () |
int | execute (int msecs=-1) |
KProcess (QObject *parent=0) | |
KProcess & | operator<< (const QStringList &args) |
KProcess & | operator<< (const QString &arg) |
OutputChannelMode | outputChannelMode () const |
int | pid () const |
QStringList | program () const |
void | setEnv (const QString &name, const QString &value, bool overwrite=true) |
void | setNextOpenMode (QIODevice::OpenMode mode) |
void | setOutputChannelMode (OutputChannelMode mode) |
void | setProgram (const QStringList &argv) |
void | setProgram (const QString &exe, const QStringList &args=QStringList()) |
void | setShellCommand (const QString &cmd) |
void | start () |
int | startDetached () |
void | unsetEnv (const QString &name) |
virtual | ~KProcess () |
Static Public Member Functions | |
static int | execute (const QStringList &argv, int msecs=-1) |
static int | execute (const QString &exe, const QStringList &args=QStringList(), int msecs=-1) |
static int | startDetached (const QStringList &argv) |
static int | startDetached (const QString &exe, const QStringList &args=QStringList()) |
Protected Member Functions | |
KProcess (KProcessPrivate *d, QObject *parent) | |
Protected Attributes | |
KProcessPrivate *const | d_ptr |
Member Enumeration Documentation
Modes in which the output channels can be opened.
- Enumerator:
-
SeparateChannels Standard output and standard error are handled by KProcess as separate channels. MergedChannels Standard output and standard error are handled by KProcess as one channel. ForwardedChannels Both standard output and standard error are forwarded to the parent process' respective channel. OnlyStdoutChannel Only standard output is handled; standard error is forwarded. OnlyStderrChannel .. and the other way round
Definition at line 54 of file kprocess.h.
Constructor & Destructor Documentation
KProcess::KProcess | ( | QObject * | parent = 0 |
) | [explicit] |
KProcess::~KProcess | ( | ) | [virtual] |
KProcess::KProcess | ( | KProcessPrivate * | d, | |
QObject * | parent | |||
) | [protected] |
Definition at line 97 of file kprocess.cpp.
Member Function Documentation
void KProcess::clearEnvironment | ( | ) |
Empties the process' environment.
Note that LD_LIBRARY_PATH/DYLD_LIBRARY_PATH is automatically added on *NIX.
This function must be called before starting the process.
Definition at line 147 of file kprocess.cpp.
void KProcess::clearProgram | ( | ) |
int KProcess::execute | ( | const QStringList & | argv, | |
int | msecs = -1 | |||
) | [static] |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
- Parameters:
-
argv the program to execute and the command line arguments for the program, one per list element msecs time to wait for process to exit before killing it
- Returns:
- -2 if the process could not be started, -1 if it crashed, otherwise its exit code
Definition at line 326 of file kprocess.cpp.
int KProcess::execute | ( | const QString & | exe, | |
const QStringList & | args = QStringList() , |
|||
int | msecs = -1 | |||
) | [static] |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
- Parameters:
-
exe the program to execute args the command line arguments for the program, one per list element msecs time to wait for process to exit before killing it
- Returns:
- -2 if the process could not be started, -1 if it crashed, otherwise its exit code
Definition at line 318 of file kprocess.cpp.
int KProcess::execute | ( | int | msecs = -1 |
) |
Start the process, wait for it to finish, and return the exit code.
This method is roughly equivalent to the sequence: start(); waitForFinished(msecs); return exitCode();
Unlike the other execute() variants this method is not static, so the process can be parametrized properly and talked to.
- Parameters:
-
msecs time to wait for process to exit before killing it
- Returns:
- -2 if the process could not be started, -1 if it crashed, otherwise its exit code
Definition at line 306 of file kprocess.cpp.
KProcess & KProcess::operator<< | ( | const QStringList & | args | ) |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
- Parameters:
-
args the arguments to add
- Returns:
- a reference to this KProcess
Definition at line 220 of file kprocess.cpp.
Append an element to the command line argument list for this process.
If no executable is set yet, it will be set instead.
For example, doing an "ls -l /usr/local/bin" can be achieved by:
KProcess p; p << "ls" << "-l" << "/usr/local/bin"; ...
This function must be called before starting the process, obviously.
- Parameters:
-
arg the argument to add
- Returns:
- a reference to this KProcess
Definition at line 209 of file kprocess.cpp.
KProcess::OutputChannelMode KProcess::outputChannelMode | ( | ) | const |
Query how the output channels of the child process are handled.
- Returns:
- the output channel handling mode
Definition at line 131 of file kprocess.cpp.
int KProcess::pid | ( | ) | const |
Obtain the process' ID as known to the system.
Unlike with QProcess::pid(), this is a real PID also on Windows.
This function can be called only while the process is running. It cannot be applied to detached processes.
- Returns:
- the process ID
Definition at line 360 of file kprocess.cpp.
QStringList KProcess::program | ( | ) | const |
Obtain the currently set program and arguments.
- Returns:
- a list, the first element being the program, the remaining ones being command line arguments to the program.
Definition at line 290 of file kprocess.cpp.
Adds the variable name
to the process' environment.
This function must be called before starting the process.
- Parameters:
-
name the name of the environment variable value the new value for the environment variable overwrite if false
and the environment variable is already set, the old value will be preserved
Definition at line 152 of file kprocess.cpp.
void KProcess::setNextOpenMode | ( | QIODevice::OpenMode | mode | ) |
Set the QIODevice open mode the process will be opened in.
This function must be called before starting the process, obviously.
- Parameters:
-
mode the open mode. Note that this mode is automatically "reduced" according to the channel modes and redirections. The default is QIODevice::ReadWrite.
Definition at line 138 of file kprocess.cpp.
void KProcess::setOutputChannelMode | ( | OutputChannelMode | mode | ) |
Set how to handle the output channels of the child process.
The default is ForwardedChannels, which is unlike in QProcess. Do not request more than you actually handle, as this output is simply lost otherwise.
This function must be called before starting the process.
- Parameters:
-
mode the output channel handling mode
Definition at line 110 of file kprocess.cpp.
void KProcess::setProgram | ( | const QStringList & | argv | ) |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
- Parameters:
-
argv the program to execute and the command line arguments for the program, one per list element
Definition at line 200 of file kprocess.cpp.
void KProcess::setProgram | ( | const QString & | exe, | |
const QStringList & | args = QStringList() | |||
) |
Set the program and the command line arguments.
This function must be called before starting the process, obviously.
- Parameters:
-
exe the program to execute args the command line arguments for the program, one per list element
Definition at line 192 of file kprocess.cpp.
void KProcess::setShellCommand | ( | const QString & | cmd | ) |
Set a command to execute through a shell (a POSIX sh on *NIX and cmd.exe on Windows).
Using this for anything but user-supplied commands is usually a bad idea, as the command's syntax depends on the platform. Redirections including pipes, etc. are better handled by the respective functions provided by QProcess.
This function must be called before starting the process, obviously.
- Parameters:
-
cmd the command to execute through a shell. The caller must make sure that all filenames etc. are properly quoted when passed as argument. Failure to do so often results in serious security holes. See KShell::quoteArg().
Definition at line 239 of file kprocess.cpp.
void KProcess::start | ( | ) |
int KProcess::startDetached | ( | const QStringList & | argv | ) | [static] |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
- Parameters:
-
argv the program to start and the command line arguments for the program, one per list element
- Returns:
- the PID of the started process or 0 on error
Definition at line 353 of file kprocess.cpp.
int KProcess::startDetached | ( | const QString & | exe, | |
const QStringList & | args = QStringList() | |||
) | [static] |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
- Parameters:
-
exe the program to start args the command line arguments for the program, one per list element
- Returns:
- the PID of the started process or 0 on error
Reimplemented from QProcess.
Definition at line 344 of file kprocess.cpp.
int KProcess::startDetached | ( | ) |
Start the process and detach from it.
See QProcess::startDetached() for details.
Unlike the other startDetached() variants this method is not static, so the process can be parametrized properly.
- Note:
- Currently, only the setProgram()/setShellCommand() and setWorkingDirectory() parametrizations are supported.
- Returns:
- the PID of the started process or 0 on error
Definition at line 333 of file kprocess.cpp.
void KProcess::unsetEnv | ( | const QString & | name | ) |
Removes the variable name
from the process' environment.
This function must be called before starting the process.
- Parameters:
-
name the name of the environment variable
Definition at line 173 of file kprocess.cpp.
Member Data Documentation
KProcessPrivate* const KProcess::d_ptr [protected] |
Definition at line 323 of file kprocess.h.
The documentation for this class was generated from the following files: