8#include <QtCore/qcompare.h>
9#include <QtCore/qiodevice.h>
10#include <QtCore/qstringlist.h>
11#include <QtCore/qshareddata.h>
17#if defined(Q_OS_WIN) || defined(Q_QDOC)
18struct _PROCESS_INFORMATION;
19struct _SECURITY_ATTRIBUTES;
21using Q_PROCESS_INFORMATION = _PROCESS_INFORMATION;
22using Q_SECURITY_ATTRIBUTES = _SECURITY_ATTRIBUTES;
23using Q_STARTUPINFO = _STARTUPINFOW;
45#if QT_CORE_REMOVED_SINCE(6, 8)
52 [[nodiscard]]
bool inheritsFromParent()
const;
72 friend class QProcessPrivate;
81class Q_CORE_EXPORT QProcess :
public QIODevice
102 enum ProcessChannel {
108 enum ProcessChannelMode {
112 ForwardedOutputChannel,
113 ForwardedErrorChannel
115 Q_ENUM(ProcessChannelMode)
117 enum InputChannelMode {
119 ForwardedInputChannel
129 explicit QProcess(
QObject *parent =
nullptr);
134 void startCommand(
const QString &command, OpenMode
mode = ReadWrite);
135 bool startDetached(
qint64 *pid =
nullptr);
136 bool open(OpenMode
mode = ReadWrite)
override;
144 ProcessChannelMode processChannelMode()
const;
145 void setProcessChannelMode(ProcessChannelMode
mode);
146 InputChannelMode inputChannelMode()
const;
147 void setInputChannelMode(InputChannelMode
mode);
149 ProcessChannel readChannel()
const;
150 void setReadChannel(ProcessChannel
channel);
152 void closeReadChannel(ProcessChannel
channel);
153 void closeWriteChannel();
158 void setStandardOutputProcess(QProcess *
destination);
160#if defined(Q_OS_WIN) || defined(Q_QDOC)
161 QString nativeArguments()
const;
163 struct CreateProcessArguments
165 const wchar_t *applicationName;
167 Q_SECURITY_ATTRIBUTES *processAttributes;
168 Q_SECURITY_ATTRIBUTES *threadAttributes;
172 const wchar_t *currentDirectory;
173 Q_STARTUPINFO *startupInfo;
174 Q_PROCESS_INFORMATION *processInformation;
176 typedef std::function<
void(CreateProcessArguments *)> CreateProcessArgumentModifier;
177 CreateProcessArgumentModifier createProcessArgumentsModifier()
const;
178 void setCreateProcessArgumentsModifier(CreateProcessArgumentModifier modifier);
180#if defined(Q_OS_UNIX) || defined(Q_QDOC)
181 std::function<
void(
void)> childProcessModifier()
const;
182 void setChildProcessModifier(
const std::function<
void(
void)> &modifier);
183 Q_NORETURN void failChildProcessModifier(
const char *description,
int error = 0)
noexcept;
185 enum class UnixProcessFlag :
quint32 {
186 ResetSignalHandlers = 0x0001,
187 IgnoreSigPipe = 0x0002,
189 CloseFileDescriptors = 0x0010,
191 CreateNewSession = 0x0040,
192 DisconnectControllingTerminal = 0x0080,
196 struct UnixProcessParameters
198 UnixProcessFlags
flags = {};
199 int lowestFileDescriptorToClose = 0;
203 UnixProcessParameters unixProcessParameters()
const noexcept;
204 void setUnixProcessParameters(
const UnixProcessParameters &
params);
205 void setUnixProcessParameters(UnixProcessFlags flagsOnly);
208 QString workingDirectory()
const;
211 void setEnvironment(
const QStringList &environment);
216 QProcess::ProcessError
error()
const;
217 QProcess::ProcessState
state()
const;
221 bool waitForStarted(
int msecs = 30000);
223 bool waitForBytesWritten(
int msecs = 30000)
override;
229 int exitCode()
const;
230 QProcess::ExitStatus exitStatus()
const;
233 qint64 bytesToWrite()
const override;
234 bool isSequential()
const override;
235 void close()
override;
252 void started(QPrivateSignal);
253 void finished(
int exitCode, QProcess::ExitStatus exitStatus = NormalExit);
254 void errorOccurred(QProcess::ProcessError
error);
255 void stateChanged(QProcess::ProcessState
state, QPrivateSignal);
257 void readyReadStandardOutput(QPrivateSignal);
258 void readyReadStandardError(QPrivateSignal);
261 void setProcessState(ProcessState
state);
268 Q_DECLARE_PRIVATE(QProcess)
269 Q_DISABLE_COPY(QProcess)
271#if QT_VERSION < QT_VERSION_CHECK(7,0,0)
275 struct Use_setChildProcessModifier_Instead {};
277 virtual Use_setChildProcessModifier_Instead setupChildProcess();
IOBluetoothL2CAPChannel * channel
\inmodule QtCore \reentrant
Initialization
This enum contains a token that is used to disambiguate constructors.
void swap(QProcessEnvironment &other) noexcept
\macro QT_RESTRICTED_CAST_FROM_ASCII
cache insert(employee->id(), employee)
QList< QVariant > arguments
Combined button and popup list for selecting options.
#define Q_DECLARE_EQUALITY_COMPARABLE(...)
constexpr bool operator!=(const timespec &t1, const timespec &t2)
DBusConnection const char DBusError DBusBusType DBusError return DBusConnection DBusHandleMessageFunction void DBusFreeFunction return DBusConnection return DBusConnection return const char DBusError return DBusConnection DBusMessage dbus_uint32_t return DBusConnection dbus_bool_t DBusConnection DBusAddWatchFunction DBusRemoveWatchFunction DBusWatchToggledFunction void DBusFreeFunction return DBusConnection DBusDispatchStatusFunction void DBusFreeFunction DBusTimeout return DBusTimeout return DBusWatch return DBusWatch unsigned int return DBusError const DBusError return const DBusMessage return DBusMessage return DBusMessage return DBusMessage return DBusMessage return DBusMessage return DBusMessageIter int const void return DBusMessageIter DBusMessageIter return DBusMessageIter void DBusMessageIter void int return DBusMessage DBusMessageIter return DBusMessageIter return DBusMessageIter DBusMessageIter const char const char const char const char return DBusMessage return DBusMessage const char return DBusMessage dbus_bool_t return DBusMessage dbus_uint32_t return DBusMessage void
DBusConnection const char DBusError DBusBusType DBusError return DBusConnection DBusHandleMessageFunction void DBusFreeFunction return DBusConnection return DBusConnection return const char DBusError return DBusConnection DBusMessage dbus_uint32_t return DBusConnection dbus_bool_t DBusConnection DBusAddWatchFunction DBusRemoveWatchFunction DBusWatchToggledFunction void DBusFreeFunction return DBusConnection DBusDispatchStatusFunction void DBusFreeFunction DBusTimeout return DBusTimeout return DBusWatch return DBusWatch unsigned int return DBusError const DBusError return const DBusMessage return DBusMessage return DBusMessage return DBusMessage return DBusMessage return DBusMessage return DBusMessageIter int const void return DBusMessageIter DBusMessageIter return DBusMessageIter void DBusMessageIter void int return DBusMessage DBusMessageIter return DBusMessageIter return DBusMessageIter DBusMessageIter const char const char const char const char return DBusMessage return DBusMessage const char * destination
DBusConnection const char DBusError * error
bool comparesEqual(const QDir &lhs, const QDir &rhs)
EGLOutputLayerEXT EGLint EGLAttrib value
[5]
#define Q_DECLARE_FLAGS(Flags, Enum)
#define Q_DECLARE_OPERATORS_FOR_FLAGS(Flags)
static bool contains(const QJsonArray &haystack, unsigned needle)
GLint GLsizei GLsizei GLenum GLenum GLsizei void * data
bool operator==(const QRandomGenerator &rng1, const QRandomGenerator &rng2)
#define QT_REQUIRE_CONFIG(feature)
#define QT_DEPRECATED_X(text)
static QStringList toStringList(const QJsonArray &jsonArray)
file open(QIODevice::ReadOnly)
settings remove("monkey")
device waitForReadyRead(deadline)
void writeData(const QByteArray &data)