Tungsten Fabric SDN — VNC API — API Server 的 API Specification
1575
2022-05-30
進程的概念
進程是操作系統里的一個概念,所謂進程就是程序執行的時候,會產生程序調度,數據處理等過程,因此一個程序會有多個進程,每個進程有自己獨立的數據空間,以允許同時有多位用戶執行同一程序,卻不會相沖突。
所以引申出一些其他的概念。
狀態
進程在執行時,狀態(state)會改變。所謂狀態,就是指進程目前的動作:
新生(new):進程新產生中。
執行(running):正在執行。
等待(waiting):等待某事發生,例如等待用戶輸入完成。亦稱“阻塞”(blocked)
就緒(ready):排班中,等待CPU。
結束(terminated):完成執行。
PID
每個進程都有自己的標識符(ID),我們稱之為PID;
QProcess
Qt 中可以使用QProcess類對進程進行操作,允許操作外部程序并進行通訊。
需要包含頭文件:
#include
1
2
3
4
5
具體可以參考文檔:https://doc.qt.io/qt-5/qprocess.html
下面是常用的public function:
QProcess(QObject *parent = nullptr) virtual ~QProcess() QStringList arguments() const void closeReadChannel(QProcess::ProcessChannel channel) void closeWriteChannel() QProcess::CreateProcessArgumentModifier createProcessArgumentsModifier() const QProcess::ProcessError error() const int exitCode() const QProcess::ExitStatus exitStatus() const QProcess::InputChannelMode inputChannelMode() const QString nativeArguments() const QProcess::ProcessChannelMode processChannelMode() const QProcessEnvironment processEnvironment() const qint64 processId() const QString program() const QByteArray readAllStandardError() QByteArray readAllStandardOutput() QProcess::ProcessChannel readChannel() const void setArguments(const QStringList &arguments) void setCreateProcessArgumentsModifier(QProcess::CreateProcessArgumentModifier modifier) void setInputChannelMode(QProcess::InputChannelMode mode) void setNativeArguments(const QString &arguments) void setProcessChannelMode(QProcess::ProcessChannelMode mode) void setProcessEnvironment(const QProcessEnvironment &environment) void setProgram(const QString &program) void setReadChannel(QProcess::ProcessChannel channel) void setStandardErrorFile(const QString &fileName, QIODevice::OpenMode mode = Truncate) void setStandardInputFile(const QString &fileName) void setStandardOutputFile(const QString &fileName, QIODevice::OpenMode mode = Truncate) void setStandardOutputProcess(QProcess *destination) void setWorkingDirectory(const QString &dir) void start(const QString &program, const QStringList &arguments, QIODevice::OpenMode mode = ReadWrite) void start(const QString &command, QIODevice::OpenMode mode = ReadWrite) void start(QIODevice::OpenMode mode = ReadWrite) bool startDetached(qint64 *pid = nullptr) QProcess::ProcessState state() const bool waitForFinished(int msecs = 30000) bool waitForStarted(int msecs = 30000) QString workingDirectory() const
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
常見用法
Windows系統下,打開文本編輯器;
QString filename = "TEST.txt"; QProcess process; process.setWorkingDirectory("C:\\Windows\\System32"); process.start("notepad.exe", QStringList() << filename); process.waitForFinished (-1); //等待進程結束
1
2
3
4
5
Qt 任務調度
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。