• Skip to content
  • Skip to link menu
KDE API Reference
  • KDE API Reference
  • kdelibs API Reference
  • KDE Home
  • Contact Us
 

KDEsu

  • KDESu
  • PtyProcess
Public Types | Public Member Functions | Static Public Member Functions | Public Attributes | Protected Member Functions | Protected Attributes | List of all members
KDESu::PtyProcess Class Reference

#include <kdesu/process.h>

Inheritance diagram for KDESu::PtyProcess:
Inheritance graph
[legend]

Public Types

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

Public Member Functions

 PtyProcess ()
 
virtual ~PtyProcess ()
 
int enableLocalEcho (bool enable=true)
 
int exec (const QByteArray &command, const QList< QByteArray > &args)
 
int fd () const
 
int pid () const
 
QByteArray readAll (bool block=true)
 
QByteArray readLine (bool block=true)
 
void setEnvironment (const QList< QByteArray > &env)
 
void setErase (bool erase)
 
void setExitString (const QByteArray &exit)
 
void setTerminal (bool terminal)
 
void unreadLine (const QByteArray &line, bool addNewline=true)
 
int waitForChild ()
 
int WaitSlave ()
 
void writeLine (const QByteArray &line, bool addNewline=true)
 

Static Public Member Functions

static bool checkPid (pid_t pid)
 
static int checkPidExited (pid_t pid)
 

Public Attributes

public __pad0__: static int waitMS(int fd
 
public int ms
 

Protected Member Functions

QList< QByteArray > environment () const
 
virtual void virtual_hook (int id, void *data)
 

Protected Attributes

bool m_bErase
 
bool m_bTerminal
 
QByteArray m_Command
 
QByteArray m_Exit
 
int m_Pid
 

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 37 of file process.h.

Member Enumeration Documentation

enum KDESu::PtyProcess::checkPidStatus

Error return values for checkPidExited()

Enumerator
Error 

No child.

NotExited 

Child hasn't exited.

Killed 

Child terminated by signal.

Definition at line 163 of file process.h.

Constructor & Destructor Documentation

KDESu::PtyProcess::PtyProcess ( )

Definition at line 137 of file process.cpp.

KDESu::PtyProcess::~PtyProcess ( )
virtual

Definition at line 159 of file process.cpp.

Member Function Documentation

bool KDESu::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 81 of file process.cpp.

int KDESu::PtyProcess::checkPidExited ( pid_t  pid)
static

Check process exit status for process pid.

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

Definition at line 102 of file process.cpp.

int KDESu::PtyProcess::enableLocalEcho ( bool  enable = true)

Enables/disables local echo on the pseudo tty.

Definition at line 406 of file process.cpp.

QList< QByteArray > KDESu::PtyProcess::environment ( ) const
protected

Returns the additional environment variables set by setEnvironment()

Definition at line 181 of file process.cpp.

int KDESu::PtyProcess::exec ( const QByteArray &  command,
const QList< QByteArray > &  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
commandThe command to execute.
argsThe arguments to the command.
Returns
0 on success, -1 on error. errno might give more information then.

Definition at line 291 of file process.cpp.

int KDESu::PtyProcess::fd ( ) const

Returns the filedescriptor of the process.

Definition at line 170 of file process.cpp.

int KDESu::PtyProcess::pid ( ) const

Returns the pid of the process.

Definition at line 175 of file process.cpp.

QByteArray KDESu::PtyProcess::readAll ( bool  block = true)

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

Parameters
blockIf no output is in the buffer, should the function block (else it will return an empty QByteArray)?
Returns
The output.

Definition at line 187 of file process.cpp.

QByteArray KDESu::PtyProcess::readLine ( bool  block = true)

Reads a line from the program's standard out.

Depending on the block parameter, this call blocks until something was read. Note that in some situations this function will return less than a full line of output, but never more. Newline characters are stripped.

Parameters
blockBlock until a full line is read?
Returns
The output string.

Definition at line 239 of file process.cpp.

void KDESu::PtyProcess::setEnvironment ( const QList< QByteArray > &  env)

Set additinal environment variables.

Set additional environment variables.

Definition at line 165 of file process.cpp.

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

Overwrites the password as soon as it is used.

Relevant only to some subclasses.

Definition at line 417 of file process.cpp.

void KDESu::PtyProcess::setExitString ( const QByteArray &  exit)

Sets the exit string.

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

Definition at line 282 of file process.cpp.

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

Enables/disables terminal output.

Relevant only to some subclasses.

Definition at line 412 of file process.cpp.

void KDESu::PtyProcess::unreadLine ( const QByteArray &  line,
bool  addNewline = true 
)

Puts back a line of input.

Parameters
lineThe line to put back.
addNewlineAdds a '
' to the line.

Definition at line 273 of file process.cpp.

void KDESu::PtyProcess::virtual_hook ( int  id,
void *  data 
)
protectedvirtual

Standard hack to add virtual methods in a BC way.

Unused.

Reimplemented in KDESu::StubProcess, KDESu::SshProcess, and KDESu::SuProcess.

Definition at line 554 of file process.cpp.

int KDESu::PtyProcess::waitForChild ( )

Waits for the child to exit.

See also setExitString.

Definition at line 430 of file process.cpp.

int KDESu::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 377 of file process.cpp.

void KDESu::PtyProcess::writeLine ( const QByteArray &  line,
bool  addNewline = true 
)

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

Parameters
lineThe text to write.
addNewlineAdds a '
' to the line.

Definition at line 264 of file process.cpp.

Member Data Documentation

public KDESu::PtyProcess::__pad0__

Definition at line 151 of file process.h.

bool KDESu::PtyProcess::m_bErase
protected
See also
setErase()

Definition at line 181 of file process.h.

bool KDESu::PtyProcess::m_bTerminal
protected

Indicates running in a terminal, causes additional newlines to be printed after output.

Set to false in constructor.

See also
setTerminal()

Definition at line 181 of file process.h.

QByteArray KDESu::PtyProcess::m_Command
protected

Unused.

Definition at line 186 of file process.h.

QByteArray KDESu::PtyProcess::m_Exit
protected

String to scan for in output that indicates child has exited.

Definition at line 186 of file process.h.

int KDESu::PtyProcess::m_Pid
protected

PID of child process.

Definition at line 185 of file process.h.

public int KDESu::PtyProcess::ms

Definition at line 151 of file process.h.


The documentation for this class was generated from the following files:
  • process.h
  • process.cpp
This file is part of the KDE documentation.
Documentation copyright © 1996-2020 The KDE developers.
Generated on Mon Jun 22 2020 13:24:36 by doxygen 1.8.7 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.

KDEsu

Skip menu "KDEsu"
  • Main Page
  • Namespace List
  • Namespace Members
  • Alphabetical List
  • Class List
  • Class Hierarchy
  • Class Members
  • File List
  • File Members
  • Related Pages

kdelibs API Reference

Skip menu "kdelibs API Reference"
  • DNSSD
  • Interfaces
  •   KHexEdit
  •   KMediaPlayer
  •   KSpeech
  •   KTextEditor
  • kconf_update
  • KDE3Support
  •   KUnitTest
  • KDECore
  • KDED
  • KDEsu
  • KDEUI
  • KDEWebKit
  • KDocTools
  • KFile
  • KHTML
  • KImgIO
  • KInit
  • kio
  • KIOSlave
  • KJS
  •   KJS-API
  •   WTF
  • kjsembed
  • KNewStuff
  • KParts
  • KPty
  • Kross
  • KUnitConversion
  • KUtils
  • Nepomuk
  • Plasma
  • Solid
  • Sonnet
  • ThreadWeaver

Search



Report problems with this website to our bug tracking system.
Contact the specific authors with questions and comments about the page contents.

KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V. | Legal