2009-08-31 11 views
7

मैं एक नामित पाइप बनाना चाहता हूं, जैसे "mkfifo" द्वारा बनाई गई एक, लेकिन एक चेतावनी। मैं पाइप को द्विपक्षीय होना चाहता हूं। यही है, मैं प्रक्रिया ए को फीफो को लिखना चाहता हूं, और बी को प्रक्रिया से पढ़ने के लिए प्रक्रिया करता हूं, और इसके विपरीत। "Mkfifo" द्वारा बनाई गई एक पाइप प्रक्रिया ए को पाइप पर लिखे गए डेटा को पढ़ने की अनुमति देती है। आम तौर पर मैं दो पाइप का उपयोग करता हूं, लेकिन मैं एक वास्तविक डिवाइस को अनुकरण करने की कोशिश कर रहा हूं, इसलिए मैं यथासंभव वास्तविक डिवाइस के समान होने के लिए खुले(), पढ़ना(), लिखना(), आदि के अर्थशास्त्र चाहता हूं। किसी को भी दो पाइप या नामित सॉकेट का उपयोग किए बिना इसे पूरा करने के लिए एक तकनीक के बारे में पता है?नामित पाइप "mkfifo" निर्माण के समान है, लेकिन बिडरेक्शनल

उत्तर

5

यूनिक्स-डोमेन सॉकेट का उपयोग करें।

ओह, आपने कहा कि आप एकमात्र उपलब्ध समाधान - यूनिक्स-डोमेन सॉकेट का उपयोग नहीं करना चाहते हैं।

उस स्थिति में, आप दो नामित पाइप खोलने या बिना किए बिना अटक गए हैं। या उनके लिए अपना स्वयं का डिवाइस ड्राइवर लिखें, बेशक - आप इसे ओपन सोर्स सिस्टम के लिए भी कर सकते हैं; बंद स्रोत सिस्टम (विंडोज़, एईक्स, एचपी-यूएक्स) के लिए यह कठिन हो सकता है।

4

या pty ("छद्म-टर्मिनल इंटरफ़ेस")। man pty

+3

एक पीटीआई सामानों के समूह के साथ आता है जो आप नहीं चाहते हैं - आमतौर पर। सभी टर्मिनल अनुशासन हैंडलिंग की तरह। लेकिन यह उल्लेख करने के लिए बॉक्स के बाहर सोच रहा है। –

संबंधित मुद्दे