मुझे बैश के 2>&1
कुछ ऐसा करना है जो Haskell में रीडायरेक्ट करता है जो stdout
और stderr
को एक प्रक्रिया से एक Handle
में जोड़ता है। System.Process.createProcess
या इसी तरह के लाइब्रेरी फ़ंक्शन के साथ इसे सीधे करना अच्छा होगा, खासकर यदि यह बैश रीडायरेक्ट w.r.t के समान वही अर्थशास्त्र का उपयोग करता है। हैंडल से इनपुट interleaving।मैं हास्केल में हैंडल कैसे जोड़ सकता हूं?
लचीलापन createProcess
द्वारा की पेशकश की पहली बार में वादा किया लगता है: एक एक Handle
मानक फ़ाइल वर्णनकर्ता के लिए उपयोग करने के लिए निर्दिष्ट कर सकते हैं, इसलिए एक ही Handle
stdout
और stderr
दोनों के लिए दिया जा सकता है। हालांकि, Handle
कॉल से पहले तर्क पहले ही मौजूद होना चाहिए। फ़ंक्शन को कॉल करने से पहले पतली हवा से Handle
बनाने की क्षमता के बिना, मुझे यकीन नहीं है कि इस समस्या को हल किया जा सकता है।
संपादित करें: समाधान को प्लेटफ़ॉर्म पर ध्यान दिए बिना काम करने की आवश्यकता है।
आप एक पार मंच दृष्टिकोण की जरूरत है? या यह सिर्फ एक यूनिक्स-वाई सिस्टम पर चल रहा है? –
@camccann हाँ; तदनुसार सवाल अद्यतन किया। – acfoltzer
ठीक है, [यहां वह जवाब है जिसे आप प्राप्त कर चुके थे] (http://hackage.haskell.org/packages/archive/unix/2.4.2.0/doc/html/System-Posix-IO.html) अन्यथा। तकनीकी रूप से यह काम करता है यदि आपके पास सिग्विन जैसी संगतता परत है, लेकिन यह है ... eugh। –