मैंने एक पाइप बनाया और मैंने उन पाइपों में स्ट्रीम 1 & 2 (stdout & stderr) को ओवरराइट करने के लिए dup2() का उपयोग किया।मैं fprintf का उपयोग कैसे कर सकता हूं और पाइप पर लिख सकता हूं?
अब मैं स्ट्रीम 1 या 2 को लिखने के लिए fprintf का उपयोग करना चाहता हूं, लेकिन मेरा प्रोग्राम पाइप के दूसरी तरफ कुछ भी प्राप्त नहीं कर रहा है। मैंने printf() का उपयोग करने का प्रयास किया है, लेकिन मुझे यकीन नहीं है कि यह डिफ़ॉल्ट रूप से stdout या स्ट्रीम 1 को लिखता है। यदि यह धारा 1 को लिखता है, तो मुझे लगता है कि यह मेरे कोड में कहीं भी गहरी समस्या है।
अनिवार्य रूप से मैं पूछ रहा हूं, धारा का प्रतिनिधित्व करने वाला एक int दिया गया है, मैं fprintf() में उपयोग के लिए उपयुक्त फ़ाइल कैसे प्राप्त कर सकता हूं?
का उपयोग कर सकते हैं क्या आप वर्णनकर्ता, फ़ाइल सूचक, या तो दोनों को बंद कर सकते हैं? – Bernard
फ़ाइल डिस्क्रिप्टर तब तक खुला रहता है जब तक कि आप स्ट्रीम को फ्लेक्स न करें, उस बिंदु पर यह मैनपेज के अनुसार फ़ाइल डिस्क्रिप्टर को बंद कर देगा। –