Synchronous communication with tty programs.
More...
#include <edelib/PtyProcess.h>
|
enum | CheckPidStatus { Error =-1,
NotExited =-2,
Killed =-3,
Crashed =-4
} |
|
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.
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.
static bool check_pid |
( |
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).
static int check_pid_exited |
( |
pid_t |
pid | ) |
|
|
static |
Check process exit status for process pid
. On error (no child, no exit), return Error (-1). If child pid
has exited, return its exit status, (which may be zero). If child has
not exited, return NotExited (-2).
int enable_local_echo |
( |
bool |
enable = true | ) |
|
Enables/disables local echo on the pseudo tty.
int exec |
( |
const char * |
command, |
|
|
const char ** |
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. |
Returns the filedescriptor of the process
Returns the pid of the process
char* read_line |
( |
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.
void set_environment |
( |
const char ** |
env | ) |
|
Set additinal environment variables
void set_erase |
( |
bool |
erase | ) |
|
|
inline |
Overwrites the password as soon as it is used. Relevant only to some subclasses
void set_exit_string |
( |
char * |
exit | ) |
|
|
inline |
Sets the exit string. If a line of program output matches this, waitForChild() will terminate the program and return.
void set_terminal |
( |
bool |
terminal | ) |
|
|
inline |
Enables/disables terminal output. Relevant only to some subclasses
Terminate the child process if still running
void unread_line |
( |
const char * |
line, |
|
|
bool |
addNewline = true |
|
) |
| |
Puts back a line of input.
- Parameters
-
line | The line to put back. |
addNewline | Adds a '
' to the line. |
Waits for the child to exit
static int wait_ms |
( |
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).
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.
void write_line |
( |
const char * |
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. |
The documentation for this class was generated from the following file: