fork ব্যবহার করা চাইল্ড প্রসেস তৈরির সবচেয়ে সহজ পথ। fork() পাইথনের os স্ট্যান্ডার্ড লাইব্রেরির অংশ।
এখানে pipe() ব্যবহার করে এই টাস্ক সমাধান করা হয়েছে। একটি প্রসেস থেকে অন্য প্রসেসে তথ্য পাস করার জন্য pipe() ব্যবহার করা হয়। টু-ওয়ে কমিউনিকেশনের জন্য দুটি পাইপ ব্যবহার করা হয়, একট لكل দিকের জন্য কারণ pipe() ইউনিডাইরেকশনাল।
অ্যালগরিদম
ধাপ ১: রিডিং ও রাইটিং-এর জন্য ফাইল ডেসক্রিপ্টর r, w। ধাপ ২: fork ব্যবহার করে প্রসেস তৈরি করুন। ধাপ ৩: যদি প্রসেস আইডি ০ হয় তবে চাইল্ড প্রসেস তৈরি করুন। ধাপ ৪: অন্যথায় পেরেন্ট প্রসেস তৈরি করুন।
উদাহরণ কোড
import os
def parentchild(cwrites):
r, w = os.pipe()
pid = os.fork()
if pid:
os.close(w)
r = os.fdopen(r)
print("পেরেন্ট পড়ছে")
str = r.read()
print("পেরেন্ট পড়েছে =", str)
else:
os.close(r)
w = os.fdopen(w, 'w')
print("চাইল্ড লিখছে")
w.write(cwrites)
print("চাইল্ড লিখেছে = ", cwrites)
w.close()
# ড্রাইভার কোড
cwrites = "Python Program"
parentchild(cwrites)
আউটপুট
চাইল্ড লিখছে চাইল্ড লিখেছে = Python Program পেরেন্ট পড়ছে পেরেন্ট পড়েছে = Python Program