vfork 函式建立子程序時永遠是子程序先執行,父程序後執行,並且子程序必須要指定退出方式即exit(1);
用fork來建立程序時子程序與父程序隨機執行,所以要避免子程序成為孤兒程序就需要乙個函式wait(&status)這樣就能保證父程序比子程序晚結束。
殭屍程序:子程序結束之後沒有被父程序**
孤兒程序:父程序先死子程序卻沒有結束;
#include #include #include #include int main()
else if (0 == pid) //子程序 子程序先執行
else //父程序
return 0;
}
下面是fork建立程序用wait來等待子程序結束並**:
#include #include #include #include #include #include int main()
else if (0 == pid) //子程序
else //父程序 }
return 0;
}
程序遍歷和程序間的操作
程序遍歷前先獲取程序快照 例子如下 具體api使用查csdn 建立程序快照 獲取系統正在執行的程序資訊,執行緒資訊等 第二個引數乙個程序id號,用來指定要獲取哪乙個程序的快照,當獲取系統程序列表或獲取當前程序快照時可以設為0 if hprocesssnap invalid handle value ...
作業系統 程序間通訊
程序間通訊涉及到3個問題 1.乙個程序如何把資訊傳遞給另乙個程序 2.確保兩個或多個程序之間不會在關鍵活動中出現交叉 3.程序間執行的順序對執行結果的影響。注意 確保程序對臨界區的 互斥 訪問。忙等待的互斥 1.遮蔽中斷 當乙個程序進入臨界區後立即遮蔽所有中斷,時鐘中斷也被遮蔽 這樣cpu就不會進行...
作業系統 程序間通訊
include include include include include include ifndef semun h 條件編譯,即若semun在標頭檔案中沒有被定義,就進行下面的編譯 define semun h union semun endif static int set semval...