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

KDEsu

  • kdesu
process.h
Go to the documentation of this file.
1
2
3/* vi: ts=8 sts=4 sw=4
4 *
5 * This file is part of the KDE project, module kdesu.
6 * Copyright (C) 1999,2000 Geert Jansen <jansen@kde.org>
7 *
8 * This is free software; you can use this library under the GNU Library
9 * General Public License, version 2. See the file "COPYING.LIB" for the
10 * exact licensing terms.
11 */
12
13#ifndef __Process_h_Included__
14#define __Process_h_Included__
15
16#include <sys/types.h>
17
18#include <QtCore/QByteRef>
19#include <QtCore/QString>
20#include <QtCore/QStringList>
21#include <QtCore/QList>
22
23#include <kdesu/kdesu_export.h>
24
25#include <kpty.h>
26
27namespace KDESu {
28
36
37class KDESU_EXPORT PtyProcess
38{
39public:
40 PtyProcess();
41 virtual ~PtyProcess();
42
51 int exec(const QByteArray &command, const QList<QByteArray> &args);
52
61 QByteArray readLine(bool block=true);
62
69 QByteArray readAll(bool block=true);
70
76 void writeLine(const QByteArray &line, bool addNewline=true);
77
83 void unreadLine(const QByteArray &line, bool addNewline=true);
84
89 void setExitString(const QByteArray &exit);
90
94 int waitForChild();
95
101 int WaitSlave();
102
106 int enableLocalEcho(bool enable=true);
107
111 void setTerminal(bool terminal);
112
117 void setErase(bool erase);
118
122 void setEnvironment( const QList<QByteArray> &env );
123
127 int fd() const;
128
132 int pid() const;
133
134public /* static */:
135 /*
136 ** This is a collection of static functions that can be
137 ** used for process control inside kdesu. I'd suggest
138 ** against using this publicly. There are probably
139 ** nicer Qt based ways to do what you want.
140 */
141
151 static int waitMS(int fd,int ms);
152
153
159 static bool checkPid(pid_t pid);
160
161
163 enum checkPidStatus { Error=-1,
164 NotExited=-2,
165 Killed=-3
166 } ;
167
175 static int checkPidExited(pid_t pid);
176
177
178protected:
179 QList<QByteArray> environment() const;
180
181 bool m_bErase,
182 m_bTerminal;
185 int m_Pid;
186 QByteArray m_Command,
187 m_Exit;
189
190private:
191 int init();
192 int setupTTY();
193
194protected:
196 virtual void virtual_hook( int id, void* data );
197private:
198 class PtyProcessPrivate;
199 PtyProcessPrivate* const d;
200};
201
202}
203
204#endif
KDESu::PtyProcess::m_Pid
int m_Pid
PID of child process.
Definition process.h:185
KDESu::PtyProcess::setExitString
void setExitString(const QByteArray &exit)
Sets the exit string.
Definition process.cpp:282
KDESu::PtyProcess::m_bErase
bool m_bErase
Definition process.h:181
KDESu::PtyProcess::pid
int pid() const
Returns the pid of the process.
Definition process.cpp:175
KDESu::PtyProcess::readLine
QByteArray readLine(bool block=true)
Reads a line from the program's standard out.
Definition process.cpp:239
KDESu::PtyProcess::m_bTerminal
bool m_bTerminal
Indicates running in a terminal, causes additional newlines to be printed after output.
Definition process.h:182
KDESu::PtyProcess::checkPidStatus
checkPidStatus
Error return values for checkPidExited()
Definition process.h:163
KDESu::PtyProcess::NotExited
@ NotExited
Child hasn't exited.
Definition process.h:164
KDESu::PtyProcess::Error
@ Error
No child.
Definition process.h:163
KDESu::PtyProcess::Killed
@ Killed
Child terminated by signal.
Definition process.h:165
KDESu::PtyProcess::m_Exit
QByteArray m_Exit
String to scan for in output that indicates child has exited.
Definition process.h:187
KDESu::PtyProcess::readAll
QByteArray readAll(bool block=true)
Read all available output from the program's standard out.
Definition process.cpp:187
KDESu::PtyProcess::PtyProcess
PtyProcess()
Definition process.cpp:137
KDESu::PtyProcess::exec
int exec(const QByteArray &command, const QList< QByteArray > &args)
Forks off and execute a command.
Definition process.cpp:291
KDESu::PtyProcess::setEnvironment
void setEnvironment(const QList< QByteArray > &env)
Set additinal environment variables.
Definition process.cpp:165
KDESu::PtyProcess::setErase
void setErase(bool erase)
Overwrites the password as soon as it is used.
Definition process.cpp:417
KDESu::PtyProcess::fd
int fd() const
Returns the filedescriptor of the process.
Definition process.cpp:170
KDESu::PtyProcess::writeLine
void writeLine(const QByteArray &line, bool addNewline=true)
Writes a line of text to the program's standard in.
Definition process.cpp:264
KDESu::PtyProcess::checkPid
static bool checkPid(pid_t pid)
Basic check for the existence of pid.
Definition process.cpp:81
KDESu::PtyProcess::m_Command
QByteArray m_Command
Unused.
Definition process.h:186
KDESu::PtyProcess::waitForChild
int waitForChild()
Waits for the child to exit.
Definition process.cpp:430
KDESu::PtyProcess::enableLocalEcho
int enableLocalEcho(bool enable=true)
Enables/disables local echo on the pseudo tty.
Definition process.cpp:406
KDESu::PtyProcess::WaitSlave
int WaitSlave()
Waits until the pty has cleared the ECHO flag.
Definition process.cpp:377
KDESu::PtyProcess::virtual_hook
virtual void virtual_hook(int id, void *data)
Standard hack to add virtual methods in a BC way.
Definition process.cpp:554
KDESu::PtyProcess::ms
int ms
Definition process.h:151
KDESu::PtyProcess::unreadLine
void unreadLine(const QByteArray &line, bool addNewline=true)
Puts back a line of input.
Definition process.cpp:273
KDESu::PtyProcess::setTerminal
void setTerminal(bool terminal)
Enables/disables terminal output.
Definition process.cpp:412
QList
pid
static pid_t pid
kdesu_export.h
KDESu
Definition client.cpp:41
This file is part of the KDE documentation.
Documentation copyright © 1996-2025 The KDE developers.
Generated on Tue Mar 25 2025 00:00:00 by doxygen 1.14.0 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-4.14.38 API Reference

Skip menu "kdelibs-4.14.38 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
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