इस खंड में हम देखेंगे कि सी ++ में चाइल्ड प्रोसेस बनाने के लिए फोर्क () का उपयोग कैसे किया जाता है। हम प्रत्येक प्रक्रिया में कुछ गणना भी करते हैं। इसलिए हमारी मूल प्रक्रिया में हम एक सरणी के सभी सम संख्याओं का योग पाएंगे, और चाइल्ड प्रक्रिया के अंदर हम सरणी तत्वों से विषम योग की गणना करेंगे।
जब कांटा () कहा जाता है, तो यह एक मान देता है। यदि मान 0 से अधिक है, तो वर्तमान में यह मूल प्रक्रिया में है, अन्यथा यह चाइल्ड प्रोसेस में है। तो इसका उपयोग करके हम प्रक्रियाओं के बीच अंतर कर सकते हैं।
उदाहरण कोड
#include <iostream>
#include <unistd.h>
using namespace std;
int main() {
int a[15] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 , 11, 12, 13, 14, 15};
int odd_sum = 0, even_sum = 0, n, i;
n = fork(); //subdivide process
if (n > 0) { //when n is not 0, then it is parent process
for (int i : a) {
if (i % 2 == 0)
even_sum = even_sum + i;
}
cout << "Parent process " << endl;
cout << "Sum of even numbers: " << even_sum << endl;
} else { //when n is 0, then it is child process
for (int i : a) {
if (i % 2 != 0)
odd_sum = odd_sum + i;
}
cout << "Child process " <<endl;
cout << "Sum of odd numbers: " << odd_sum << endl;
}
return 0;
} आउटपुट
Parent process Sum of even numbers: 56 Child process Sum of odd numbers: 64