KPty 5.109.0
|
This class extends KProcess by support for PTYs (pseudo TTYs). More...
#include <kptyprocess.h>
Public Types | |
enum | PtyChannelFlag { NoChannels = 0 , StdinChannel = 1 , StdoutChannel = 2 , StderrChannel = 4 , AllOutputChannels = 6 , AllChannels = 7 } |
typedef QFlags< PtyChannelFlag > | PtyChannels |
Stores a combination of #PtyChannelFlag values. | |
Public Member Functions | |
KPtyProcess (int ptyMasterFd, QObject *parent=nullptr) | |
Construct a process using an open pty master. | |
KPtyProcess (QObject *parent=nullptr) | |
Constructor. | |
~KPtyProcess () override | |
Destructor. | |
bool | isUseUtmp () const |
Get whether to register the process as a TTY login in utmp. | |
KPtyDevice * | pty () const |
Get the PTY device of this process. | |
PtyChannels | ptyChannels () const |
Query to which channels the PTY is assigned. | |
void | setPtyChannels (PtyChannels channels) |
Set to which channels the PTY should be assigned. | |
void | setUseUtmp (bool value) |
Set whether to register the process as a TTY login in utmp. | |
This class extends KProcess by support for PTYs (pseudo TTYs).
The PTY is opened as soon as the class is instantiated. Verify that it was opened successfully by checking that pty()->masterFd() is not -1.
The PTY is always made the process' controlling TTY. Utmp registration and connecting the stdio handles to the PTY are optional.
No attempt to integrate with QProcess' waitFor*() functions was made, for it is impossible. Note that execute() does not work with the PTY, too. Use the PTY device's waitFor*() functions or use it asynchronously.
typedef QFlags< PtyChannelFlag > KPtyProcess::PtyChannels |
Stores a combination of #PtyChannelFlag values.
|
explicit |
Constructor.
KPtyProcess::KPtyProcess | ( | int | ptyMasterFd, |
QObject * | parent = nullptr |
||
) |
Construct a process using an open pty master.
ptyMasterFd | an open pty master file descriptor. The process does not take ownership of the descriptor; it will not be automatically closed at any point. |
|
override |
Destructor.
bool KPtyProcess::isUseUtmp | ( | ) | const |
Get whether to register the process as a TTY login in utmp.
KPtyDevice * KPtyProcess::pty | ( | ) | const |
Get the PTY device of this process.
PtyChannels KPtyProcess::ptyChannels | ( | ) | const |
Query to which channels the PTY is assigned.
void KPtyProcess::setPtyChannels | ( | PtyChannels | channels | ) |
Set to which channels the PTY should be assigned.
This function must be called before starting the process.
channels | the output channel handling mode |
void KPtyProcess::setUseUtmp | ( | bool | value | ) |
Set whether to register the process as a TTY login in utmp.
Utmp is disabled by default. It should enabled for interactively fed processes, like terminal emulations.
This function must be called before starting the process.
value | whether to register in utmp. |