Python fork-exec problem, child process output goes to same place as parent process -
निम्न कोड को निम्न के साथ कोशिश करें: python fork.py
और: अजगर कांटा। Py 1
यह देखने के लिए कि यह क्या करता है।
#! / Usr / bin / env python2 import os import sys child_exit_status = 0 यदि len (sys.argv) & gt; 1: child_exit_status = int (sys.argv [1]) pid = os.fork () अगर pid == 0: प्रिंट "यह बच्चा है" अगर child_exit_status == 0: os.execl ('/ usr / bin / whoami ') अन्य: os._exit (child_exit_status) अन्य: प्रिंट "यह माता-पिता है" (child_pid, child_status) = os.wait () प्रिंट "हमारे बच्चे% s स्थिति% s से बाहर निकल"% (child_pid, child_status) कोड>
प्रश्न: बाल प्रक्रिया 'प्रिंट' कैसे कर सकती है और यह अभी भी माता-पिता की प्रक्रिया के रूप में उसी स्थान पर आती है?
(उबंटू 10.04 पर पायथन 2.6 का उपयोग कर रहा हूं )
लिनक्स के अंतर्गत, बच्चे की प्रक्रिया को विरासत में मिली (लगभग) अभिभावक से सब कुछ, फाइल विवरणकर्ताओं सहित आपके मामले में, फ़ाइल विवरणक 1 (stdout) और फ़ाइल डिस्क्रिप्टर 2 (स्टेडरआर) माता-पिता के रूप में एक ही फाइल के लिए खुले हैं।
मैन पेज देखें।
अगर आप चाहें बच्चे के उत्पादन को किसी स्थान पर जाने के लिए, आप बच्चे में एक नई फाइल खोल सकते हैं।
Comments
Post a Comment