এই বিভাগে আমরা দেখব কিভাবে ফর্ক() ব্যবহার করে C++ এ চাইল্ড প্রসেস তৈরি করতে হয়। আমরা প্রতিটি প্রক্রিয়ার মধ্যে কিছু গণনাও করি। তাই আমাদের অভিভাবক প্রক্রিয়ায় আমরা একটি অ্যারের সমস্ত জোড় সংখ্যার যোগফল খুঁজে পাব, এবং চাইল্ড প্রক্রিয়ার ভিতরে আমরা অ্যারের উপাদান থেকে বিজোড় যোগফল গণনা করব।
যখন ফর্ক() কল করা হয়, এটি একটি মান প্রদান করে। যদি মানটি 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