C++ 系統可處理的最大殭屍程序數


給定任務是找到系統可以處理的最大殭屍程序數,或者換句話說,程式不會停止執行。

殭屍程序(也稱為失效程序)是指已透過 exit()(系統呼叫)完成其程序但仍在程序表中具有條目的程序。

下面程式中使用的方案如下

  • 請注意,為了執行程式,應新增 <unistd.h>。

  • 在 main() 函式中初始化型別為 int 的 num = 0,我們將對其進行迭代直到程式停止執行。

  • 要啟動殭屍程序,請建立帶有條件 while( fork() > 0 ) 的 while 語句。

    Fork() 系統呼叫用於啟動一個稱為子程序的新程序,該程序併發執行並進行 fork() 呼叫(即父程序)。

  • 在 while 迴圈內遞增 num 並列印它。

示例

#include<iostream>
#include<unistd.h>
using namespace std;
int main(){
   int num = 0;
   while (fork() > 0){
      num++;
      cout<<num<<" ";
   }
}

輸出

如果我們執行以上程式碼,我們將獲得以下輸出:

在以上輸出中,num 在 93 處停止遞增。但是此數字不是固定的,並且可能因系統配置而異。

更新於: 2020年8月17日

148 次檢視

開啟您的 職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.