यूनिक्स पर्यावरण में उन्नत प्रोग्रामिंग में पाइप के बारे में पढ़ते समय, मैंने देखा कि एक कांटा के बाद माता-पिता close()
पाइप के पढ़ने के अंत कर सकते हैं और यह पढ़ने के अंत को बंद नहीं करता है बच्चा। जब एक प्रक्रिया कांटा, क्या इसकी फाइल डिस्क्रिप्टर बनाए रखा जाता है?एक कांटा के बाद एक पाइप का व्यवहार()
मेरा मतलब यह है कि कांटे से पहले पाइप पढ़ने के लिए फ़ाइल डिस्क्रिप्टर की गिनती 1 थी, और कांटा के बाद 2. जब माता-पिता ने अपनी पढ़ाई की ओर बंद कर दिया तो एफडी 1 तक चला गया और इसे खोलने के लिए खुला रखा गया बच्चे। क्या यह अनिवार्य रूप से हो रहा है? क्या यह व्यवहार नियमित फ़ाइल वर्णनकर्ताओं के लिए भी होता है?
... जब तक आप http://www.opengroup.org/onlinepubs/009695399/functions/pthread_atfork.html (जो आपको नहीं करना चाहिए, यह नहीं है) के साथ कुछ चालबाजी नहीं करते हैं – ephemient
निश्चित रूप से, लेकिन क्या आपने पोस्ट किया है 'कांटा() 'लेकिन इसका एक बदलाव नहीं है। – pajton
नहीं, मेरा मतलब है कि 'pthread_atfork' प्रोग्राम के कार्यों को 'फोर्क' समय पर बदल सकता है (उदाहरण के लिए) बंद फ़ाइल डिस्क्रिप्टर शामिल हैं। लेकिन डिफ़ॉल्ट रूप से ऐसा नहीं होता है, और किसी भी तरह इंटरफ़ेस का दुरुपयोग करना एक अजीब चीज है। – ephemient