কম্পিউটার

fork() C++ এ wait() ব্যবহার করে নিচ থেকে উপরে প্রসেস চালাতে


আমরা জানি যে ফর্ক() সিস্টেম কল প্রক্রিয়াটিকে দুটি প্রক্রিয়ায় ভাগ করতে ব্যবহৃত হয়। যদি ফাংশন ফর্ক() 0 প্রদান করে, তাহলে এটি চাইল্ড প্রসেস এবং অন্যথায় এটি প্যারেন্ট প্রসেস।

এই উদাহরণে আমরা দেখব কিভাবে প্রসেসগুলিকে চারবার বিভক্ত করা যায়, এবং সেগুলোকে নিচের দিকে ব্যবহার করা যায়। তাই প্রথমে আমরা দুইবার fork() ফাংশন ব্যবহার করব। সুতরাং এটি একটি শিশু প্রক্রিয়া তৈরি করবে, তারপর পরবর্তী কাঁটা থেকে এটি আরেকটি শিশু তৈরি করবে। এর পরে অভ্যন্তরীণ কাঁটা থেকে এটি স্বয়ংক্রিয়ভাবে তাদের একটি নাতি-নাতনি তৈরি করবে।

আমরা অপেক্ষা () ফাংশন ব্যবহার করব যাতে কিছু বিলম্ব তৈরি হয় এবং প্রক্রিয়াগুলিকে নীচের দিকে চালানো হয়৷

উদাহরণ কোড

#include <iostream>
#include <sys/wait.h>
#include <unistd.h>
using namespace std;
int main() {
   pid_t id1 = fork(); //make 4 process using two consecutive fork. The main process, two children and one grand child
   pid_t id2 = fork();
   if (id1 > 0 && id2 > 0) { //when both ids are non zero, then it is parent process
      wait(NULL);
      wait(NULL);
      cout << "Ending of parent process" << endl;
   }else if (id1 == 0 && id2 > 0) { //When first id is 0, then it is first child
      sleep(2); //wait 2 seconds to execute second child first
      wait(NULL);
      cout << "Ending of First Child" << endl;
   }else if (id1 > 0 && id2 == 0) { //When second id is 0, then it is second child
      sleep(1); //wait 2 seconds
      cout << "Ending of Second child process" << endl;
   }else {
      cout << "Ending of grand child" << endl;
   }
   return 0;
}

আউটপুট

soumyadeep@soumyadeep-VirtualBox:~$ ./a.out
Ending of grand child
Ending of Second child process
Ending of First Child
Ending of parent process
soumyadeep@soumyadeep-VirtualBox:~$

  1. কিভাবে আপনার কম্পিউটার থেকে ওপেনসিভিতে C++ ব্যবহার করে ভিডিও লোড করবেন?

  2. কিভাবে C++ ব্যবহার করে OpenCV-তে অন্যান্য ক্যামেরা থেকে ভিডিও ক্যাপচার করবেন?

  3. কিভাবে C++ ব্যবহার করে OpenCV-তে ডিফল্ট ক্যামেরা থেকে ভিডিও ক্যাপচার করবেন?

  4. সর্বাধিক সংখ্যক Zombie প্রসেস একটি সিস্টেম C++ এ পরিচালনা করতে পারে