2013-06-23 11 views
5

डिस्क पर फ़ाइल खोलने के बिना फ़ाइल डिस्क्रिप्टर के साथ बातचीत करने का कोई तरीका है?डिस्क पर लिखने के बिना डिस्क्रिप्टर 3 फ़ाइल लिखें?

यह एक फ़ाइल पहले fd3 करने के लिए सौंपा जा रहा है बिना काम नहीं करेगा:

echo a >&3 
+8

यह क्या हासिल करने की कोशिश कर रहे हैं है बंद कर सकते हैं ? –

+2

आप एक [फीफो कतार] (https://en.wikipedia.org/wiki/Named_pipe) बनाने के लिए 'mkfifo' का उपयोग कर सकते हैं, जो फाइल सिस्टम में एक प्रविष्टि बनाएगा लेकिन इसके माध्यम से वास्तविक io स्मृति में होगा। – Kevin

उत्तर

12

कि आप क्या करना चाहते हैं पर निर्भर करता है। मान लीजिए कि आप अपने अवकाश पर तार लिखना चाहते हैं और उन्हें उलट प्रिंट करना चाहते हैं। एक प्रक्रिया प्रतिस्थापन stdin के लिए इंतज़ार कर में एक फ़ाइल वर्णनकर्ता पुन: निर्देशित की स्थापना:

$ exec 3> >(rev) 
$ echo hello world >&3 
dlrow olleh 

आप इसके साथ काम हो गया है, तो आप फ़ाइल वर्णनकर्ता

$ exec 3>&- 
$ echo hello world >&3 
bash: 3: Bad file descriptor 
+1

मेरी समझ यह है कि यह * कुछ प्लेटफार्मों में डिस्क पर है (जहां '/ dev/fd' उपलब्ध नहीं है, और इस प्रकार एक नामित पाइप इसके बजाए उपयोग किया जाता है)। –

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