PtyProcess Class Reference

`#include <process.h>`

Inheritance diagram for PtyProcess:

## Public Types

enum | checkPidStatus { Error =-1, NotExited =-2, Killed =-3 }

## Public Member Functions

int | exec (const QCString &command, const QCStringList &args)
QCString | readLine (bool block=true)
QCString | readAll (bool block=true)
void | writeLine (const QCString &line, bool addNewline=true)
void | unreadLine (const QCString &line, bool addNewline=true)
void | setExitString (const QCString &exit)
int | waitForChild ()
int | WaitSlave ()
int | enableLocalEcho (bool enable=true)
void | setTerminal (bool terminal)
void | setErase (bool erase)
void | setEnvironment (const QCStringList &env)
int | fd ()
int | pid ()

## Static Public Member Functions

static int | waitMS (int fd, int ms)
static bool | checkPid (pid_t pid)
static int | checkPidExited (pid_t pid)

## Protected Member Functions

const QCStringList & | environment () const
virtual void | virtual_hook (int id, void *data)

## Protected Attributes

bool | m_bErase
bool | m_bTerminal
int | m_Pid
int | m_Fd
QCString | m_Command
QCString | m_Exit

## Detailed Description

Synchronous communication with tty programs.

PtyProcess provides synchronous communication with tty based programs. The communications channel used is a pseudo tty (as opposed to a pipe) This means that programs which require a terminal will work.

Definition at line 36 of file process.h.

## Member Enumeration Documentation

enum PtyProcess::checkPidStatus

Check process exit status for process `pid`.

On error (no child, no exit), return -1. If child `pid` has exited, return its exit status, (which may be zero). If child `has` not exited, return -2.

Definition at line 162 of file process.h.

## Member Function Documentation

bool PtyProcess::checkPid | ( | pid_t | pid | ) |

static

Basic check for the existence of `pid`.

Returns true iff `pid` is an extant process, (one you could kill - see man kill(2) for signal 0).

Definition at line 75 of file process.cpp.

int PtyProcess::enableLocalEcho | ( | bool | enable = `true` | ) |

Enables/disables local echo on the pseudo tty.

Definition at line 450 of file process.cpp.

int PtyProcess::exec | ( | const QCString & | command,
|  | const QCStringList & | args
| ) |  |

Forks off and execute a command.

The command's standard in and output are connected to the pseudo tty. They are accessible with readLine and writeLine.

Parameters

  command | The command to execute.
  args | The arguments to the command.

Definition at line 324 of file process.cpp.

int PtyProcess::fd | ( |  | ) |

inline

Returns the filedescriptor of the process.

Definition at line 121 of file process.h.

int PtyProcess::pid | ( |  | ) |

inline

Returns the pid of the process.

Definition at line 126 of file process.h.

QCString PtyProcess::readAll | ( | bool | block = `true` | ) |

Read all available output from the program's standard out.

Parameters

  block | If no output is in the buffer, should the function block

Returns
  The output.

Definition at line 247 of file process.cpp.

QCString PtyProcess::readLine | ( | bool | block = `true` | ) |

Reads a line from the program's standard out.

Depending on the block parameter, this call blocks until a single, full line is read.

Parameters

  block | Block until a full line is read?

Returns
  The output string.

Definition at line 175 of file process.cpp.

void PtyProcess::setEnvironment | ( | const QCStringList & | env | ) |

Set additinal environment variables.

Definition at line 159 of file process.cpp.

void PtyProcess::setErase | ( | bool | erase | ) |

inline

Overwrites the password as soon as it is used.

Relevant only to some subclasses.

Definition at line 111 of file process.h.

void PtyProcess::setExitString | ( | const QCString & | exit | ) |

inline

Sets the exit string.

If a line of program output matches this, waitForChild() will terminate the program and return.

Definition at line 83 of file process.h.

void PtyProcess::setTerminal | ( | bool | terminal | ) |

inline

Enables/disables terminal output.

Relevant only to some subclasses.

Definition at line 105 of file process.h.

void PtyProcess::unreadLine | ( | const QCString & | line,
|  | bool | addNewline = `true`
| ) |  |

Puts back a line of input.

Parameters

  line | The line to put back.
  addNewline | Adds a ' ' to the line.

Definition at line 311 of file process.cpp.

int PtyProcess::waitForChild | ( |  | ) |

Waits for the child to exit.

See also setExitString.

Definition at line 486 of file process.cpp.

int PtyProcess::waitMS | ( | int | fd,
|  | int | ms
| ) |  |

static

Wait `ms` miliseconds (ie.

1/10th of a second is 100ms), using `fd` as a filedescriptor to wait on. Returns select(2)'s result, which is -1 on error, 0 on timeout, or positive if there is data on one of the selected fd's.

`ms` must be in the range 0..999 (ie. the maximum wait duration is 999ms, almost one second).

Definition at line 59 of file process.cpp.

int PtyProcess::WaitSlave | ( |  | ) |

Waits until the pty has cleared the ECHO flag.

This is useful when programs write a password prompt before they disable ECHO. Disabling it might flush any input that was written.

Definition at line 412 of file process.cpp.

void PtyProcess::writeLine | ( | const QCString & | line,
|  | bool | addNewline = `true`
| ) |  |

Writes a line of text to the program's standard in.

Parameters

  line | The text to write.
  addNewline | Adds a ' ' to the line.

Definition at line 302 of file process.cpp.

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

- process.h
- process.cpp

KDE Home | KDE Accessibility Home | Description of Access Keys