समस्या विवरण
fork का उपयोग करना चाइल्ड प्रोसेस बनाने का सबसे आसान तरीका है। fork() ओएस स्टैंडर्ड पायथन लाइब्रेरी का हिस्सा है।
यहां, हम इस कार्य को pipe() के उपयोग से हल करते हैं। एक प्रोसेस से दूसरे प्रोसेस में जानकारी पास करने के लिए pipe() का उपयोग किया जाता है। दो-तरफा संचार के लिए दो पाइप का उपयोग किया जा सकता है, प्रत्येक दिशा के लिए एक क्योंकि pipe() यूनिडायरेक्शनल है।
एल्गोरिदम
- पढ़ने और लिखने के लिए फाइल डिस्क्रिप्टर r, w।
forkका उपयोग करके एक प्रोसेस बनाएं।- यदि प्रोसेस आईडी 0 है तो चाइल्ड प्रोसेस बनाएं।
- अन्यथा पैरेंट प्रोसेस बनाएं।
उदाहरण कोड
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