再帰的に使用する必要fork()
がありますが、フォークされたプロセス (子と子孫を含む) の数を (たとえば) 100 に制限します。次のコード スニペットを考慮します。
void recursive(int n) {
for(int i=0; i<n; i++) {
if(number_of_processes() < 100) {
if(fork() == 0) {
number_of_processes_minus_one();
recursive(i);
exit(0);
}
}
else
recursive(i);
}
}
実装方法number_of_processes()
とnumber_of_processes_minus_one()
? IPCを使用する必要がありますか? ファイルを事前に作成し、書き込みPROC_MAX
、ロック、読み取り、書き込み、ロック解除を試みましたnumber_of_processes()
が、それでもすべての pid が使用されます。