नहीं, /dev/stdin
और /dev/stdout
गलत उपकरण हैं। ये टर्मिनल डिवाइस नहीं हैं, वे क्रमशः मानक इनपुट और मानक आउटपुट के लिए उपनाम हैं। मानक इनपुट और मानक आउटपुट, परिभाषा के अनुसार, फ़ाइल डिस्क्रिप्टर हैं जो एप्लिकेशन के खुले होने की उम्मीद करते हैं और उनका पारंपरिक अर्थ होता है (फाइल डिस्क्रिप्टर 0 और 1 क्रमशः, वहाँ भी 2 है जो मानक त्रुटि है)। जब एप्लिकेशन को किसी फ़ाइल नाम की आवश्यकता होती है, जैसे डिवाइस /dev/stdin
और /dev/stdout
उपयोगी होते हैं, लेकिन एप्लिकेशन का उपयोगकर्ता यह चाहता है कि वह कुछ फ़ाइल खोलने के बजाय किसी विशेष फ़ाइल डिस्क्रिप्टर तक पहुंच सके। यूनिक्स संस्करण के आधार पर, वे डिवाइस फ़ाइल भी नहीं हो सकते हैं; उदाहरण के लिए, लिनक्स पर, वे प्रतीकात्मक लिंक हैं/proc/self/fd/0
और दोस्त, और ये बदले में "मैजिक" प्रतीकात्मक लिंक होते हैं जो भी प्रक्रिया उस फ़ाइल डिस्क्रिप्टर पर पहले से ही खुली है।
की अनुमतियों को बदलने /dev/stdin
और /dev/stdout
केवल तब ही बदल जाएगा जब इन फ़ाइल नामों का स्पष्ट रूप से उपयोग किया जाता है। यह टर्मिनल से संबंधित किसी भी चीज को प्रभावित नहीं करता है, और यह मानक इनपुट और मानक आउटपुट के सामान्य उपयोग को प्रभावित नहीं करता है, क्योंकि अनुमतियाँ केवल तब ही बात करती हैं जब एक विशेष फ़ाइल नाम खोलते हैं।
mesg
प्रक्रिया के नियंत्रण टर्मिनल की अनुमतियों को बदलने के लिए क्या करना है । एक टर्मिनल में चल रहे एप्लिकेशन के लिए, टर्मिनल मानक इनपुट, मानक ouput और मानक त्रुटि (फ़ाइल डिस्क्रिप्टर 0, 1 और 2) पर खुला है। tty
टर्मिनल डिवाइस क्या है यह देखने के लिए आप कमांड का उपयोग कर सकते हैं । mesg n
के बराबर है chmod g-w "$(tty)"
और mesg y
इसके बराबर है chmod g+w "$(tty)"
।
mesg n
प्रभावित करने के लिए भविष्य अनुमतियों का उपयोग कर सकते हैंwrite
रों सिर्फ इसलिएwrite
नहीं है पहले से ही टर्मिनल खोला हुआ है।