📄 qprocess_p.h
字号:
/******************************************************************************** Copyright (C) 1992-2006 Trolltech ASA. All rights reserved.**** This file is part of the QtCore module of the Qt Toolkit.**** This file may be used under the terms of the GNU General Public** License version 2.0 as published by the Free Software Foundation** and appearing in the file LICENSE.GPL included in the packaging of** this file. Please review the following information to ensure GNU** General Public Licensing requirements will be met:** http://www.trolltech.com/products/qt/opensource.html**** If you are unsure which license is appropriate for your use, please** review the following information:** http://www.trolltech.com/products/qt/licensing.html or contact the** sales department at sales@trolltech.com.**** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.******************************************************************************/#ifndef QPROCESS_P_H#define QPROCESS_P_H//// W A R N I N G// -------------//// This file is not part of the Qt API. It exists purely as an// implementation detail. This header file may change from version to// version without notice, or even be removed.//// We mean it.//#include "QtCore/qprocess.h"#include "QtCore/qstringlist.h"#include "private/qinternal_p.h"#include "private/qiodevice_p.h"#ifdef Q_OS_WIN#include "QtCore/qt_windows.h"typedef HANDLE Q_PIPE;#define INVALID_Q_PIPE INVALID_HANDLE_VALUE#elsetypedef int Q_PIPE;#define INVALID_Q_PIPE -1#endif#ifndef QT_NO_PROCESSclass QSocketNotifier;class QWindowsPipeWriter;class QWinEventNotifier;class QTimer;class QProcessPrivate : public QIODevicePrivate{public: Q_DECLARE_PUBLIC(QProcess) QProcessPrivate(); virtual ~QProcessPrivate(); // private slots bool _q_canReadStandardOutput(); bool _q_canReadStandardError(); bool _q_canWrite(); bool _q_startupNotification(); bool _q_processDied(); void _q_notified(); QProcess::ProcessChannel processChannel; QProcess::ProcessChannelMode processChannelMode; QProcess::ProcessError processError; QProcess::ProcessState processState; QString workingDirectory; Q_PID pid; int sequenceNumber; bool standardOutputClosed; bool standardErrorClosed; bool emittedReadyRead; bool emittedBytesWritten; bool writeChannelClosing; void closeWriteChannel(); QString program; QStringList arguments; QStringList environment; QRingBuffer outputReadBuffer; QRingBuffer errorReadBuffer; QRingBuffer writeBuffer; Q_PIPE standardReadPipe[2]; Q_PIPE errorReadPipe[2]; Q_PIPE writePipe[2]; Q_PIPE childStartedPipe[2]; Q_PIPE deathPipe[2]; void destroyPipe(Q_PIPE pipe[2]); QSocketNotifier *standardReadSocketNotifier; QSocketNotifier *errorReadSocketNotifier; QSocketNotifier *writeSocketNotifier; QSocketNotifier *startupSocketNotifier; QSocketNotifier *deathNotifier; // the wonderful windows notifier QTimer *notifier; QWindowsPipeWriter *pipeWriter; QWinEventNotifier *processFinishedNotifier; void startProcess(); void execChild(const QByteArray &encodedProgramName); bool processStarted(); void terminateProcess(); void killProcess(); void findExitCode();#ifdef Q_OS_UNIX bool waitForDeadChild();#endif static bool startDetached(const QString &program, const QStringList &arguments); int exitCode; QProcess::ExitStatus exitStatus; bool crashed;#ifdef Q_OS_UNIX int serial;#endif bool waitForStarted(int msecs = 30000); bool waitForReadyRead(int msecs = 30000); bool waitForBytesWritten(int msecs = 30000); bool waitForFinished(int msecs = 30000); bool waitForWrite(int msecs = 30000); qint64 bytesAvailableFromStdout() const; qint64 bytesAvailableFromStderr() const; qint64 readFromStdout(char *data, qint64 maxlen); qint64 readFromStderr(char *data, qint64 maxlen); qint64 writeToStdin(const char *data, qint64 maxlen); void cleanup();#ifdef Q_OS_UNIX static void initializeProcessManager();#endif};#endif // QT_NO_PROCESS#endif // QPROCESS_P_H
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -