fork() কী?
সি প্রোগ্রামিং-এ fork() একটি সিস্টেম কল যা একটি নতুন প্রসেস তৈরি করতে ব্যবহৃত হয়। এই নতুন তৈরি হওয়া প্রসেসকে চাইল্ড প্রসেস বলা হয়। যে প্রসেসটি অন্য একটি চাইল্ড প্রসেস তৈরি করছে, তাকে প্যারেন্ট প্রসেস বলা হয়।
চাইল্ড প্রসেসের বৈশিষ্ট্য
একটি চাইল্ড প্রসেস প্যারেন্ট প্রসেসের মতো একই প্রোগ্রাম কাউন্টার, সিপিইউ রেজিস্টার এবং ফাইল ব্যবহার করে।
fork() রিটার্ন মান
fork() কোনো প্যারামিটার নেয় না, এটি পূর্ণসংখ্যা মান রিটার্ন করে। এটি তিন ধরনের পূর্ণসংখ্যা মান রিটার্ন করতে পারে:
- নেগেটিভ সংখ্যা: চাইল্ড প্রসেস তৈরি ব্যর্থ হলে নেগেটিভ সংখ্যা রিটার্ন করে।
- শূন্য মান: নতুন তৈরি হওয়া চাইল্ড প্রসেসের জন্য শূন্য রিটার্ন করে।
- পজিটিভ মান: প্যারেন্ট প্রসেসের জন্য পজিটিভ মান (চাইল্ড প্রসেসের PID) রিটার্ন করে।
উদাহরণ কোড
#include <stdio.h>
#include <sys/types.h>
#include <unistd.h>
int main() {
fork(); // একই ধরনের একটি চাইল্ড প্রসেস তৈরি
printf("Fork testing code\n");
return 0;
}
আউটপুট
soumyadeep@soumyadeep-VirtualBox:~$ ./a.out Fork testing code soumyadeep@soumyadeep-VirtualBox:~$ Fork testing code soumyadeep@soumyadeep-VirtualBox:~$