मानक विधा (स्टैंडर्ड स्ट्रीम्स): Difference between revisions

From Vigyanwiki
No edit summary
No edit summary
 
(10 intermediate revisions by 4 users not shown)
Line 2: Line 2:
{{About|मानक I/O फ़ाइल डिस्क्रिप्टर|सिस्टम V स्ट्रीम|स्ट्रीम}}
{{About|मानक I/O फ़ाइल डिस्क्रिप्टर|सिस्टम V स्ट्रीम|स्ट्रीम}}


तीन इनपुट/आउटपुट (I/O) कनेक्शन मानक इनपुट (stdin), मानक आउटपुट (stdout) और मानक त्रुटि (stderr) कहलाते हैं।


[[कंप्यूटर प्रोग्रामिंग]] में,मानक स्ट्रीम्स कंप्यूटर प्रोग्राम के प्रारंभिक निष्पादन परियोजना और उसके आसपास के पर्यावरण के बीच एक-दूसरे से जुड़े हुए इनपुट और आउटपुट संचार चैनल होते हैं।तीन इनपुट/आउटपुट (I/O) कनेक्शन कोमानकइनपुट,मानक आउटपुट और मानक त्रुटि कहा जाता हैं। प्रारंभ में, इनपुट/आउटपुट (I/O) शारीरिक रूप से जुड़े हुए [[सिस्टम कंसोल]] के माध्यम से होता था परंतुमानकस्ट्रीम्स इसे अबस्ट्रैक्ट करते हैं।जब किसी कमांड को परस्पर संवादात्मक शैल के माध्यम से निष्पादित किया जाता है, तो स्ट्रीम्स सामान्यतः वह टेक्स्ट [[ पाठ टर्मिनल |टर्मिनल]] से जुड़े होते हैं जिस पर शैल चल रहा होता है, परंतु  इन्हें पुनर्क्रिया या [[पाइपलाइन (यूनिक्स)|पाइपलाइन]] के माध्यम से बदला जा सकता है। सामान्यतः, एक चाइल्ड प्रोसेस अपने पैरेंट प्रोसेस के मानक स्ट्रीम्स को अनुग्रहित करता है।
[[कंप्यूटर प्रोग्रामिंग]] में,मानक विधा  कंप्यूटर प्रोग्राम के प्रारंभिक निष्पादन परियोजना और उसके आसपास के पर्यावरण के बीच एक-दूसरे से जुड़े हुए इनपुट और आउटपुट संचार चैनल होते हैं।तीन इनपुट/आउटपुट (I/O) संयोजन को मानक इनपुट,मानक आउटपुट और मानक त्रुटि कहा जाता हैं। प्रारंभ में, इनपुट/आउटपुट (I/O) शारीरिक रूप से जुड़े हुए [[सिस्टम कंसोल]] के माध्यम से होता था परंतु मानक विधा इसे अबस्ट्रैक्ट करते हैं। जब किसी कमांड को परस्पर संवादात्मक शैल के माध्यम से निष्पादित किया जाता है, तो विधा  सामान्यतः वह टेक्स्ट [[ पाठ टर्मिनल |टर्मिनल]] से जुड़े होते हैं जिस पर शैल चल रहा होता है, परंतु  इन्हें पुनर्क्रिया या [[पाइपलाइन (यूनिक्स)|पाइपलाइन]] के माध्यम से बदला जा सकता है। सामान्यतः, एक चाइल्ड प्रोसेस अपने पैरेंट प्रोसेस के मानक विधा को अनुग्रहित करता है।


== आवेदन ==
== आवेदन ==
[[File:Stdstreams-notitle.svg|thumb|right|इनपुट, आउटपुट और त्रुटि के लिए मानक स्ट्रीम|206x206px]]उपयोगकर्ता आमतौर पर मानक स्ट्रीम को इनपुट और आउटपुट चैनल के रूप में जानते हैं जो इनपुट डिवाइस से आने वाले डेटा को संभालते हैं, या जो एप्लिकेशन से डेटा लिखते हैं। डेटा किसी भी एन्कोडिंग, या [[बाइनरी फ़ाइल]] के साथ टेक्स्ट हो सकता है।
[[File:Stdstreams-notitle.svg|thumb|right|इनपुट, आउटपुट और त्रुटि के लिए मानक विधा |206x206px]]उपयोगकर्ताओं को सामान्यतः मानक विधा के रूप में इनपुट और आउटपुट चैनलों के रूप में जाना जाता है जो एक इनपुट उपकरण से आने वाले डेटा का प्रयोग करते हैं, या जो डेटा को आवेदन से लिखते हैं। इस डेटा में किसी भी कोडिंग के साथ पाठ हो सकता है, या बाइनरी डेटा हो सकता है। आधुनिक बहुत सारे सिस्टमों में, एक प्रोग्राम का मानक त्रुटि विधा सामान्यतः त्रुटि विश्लेषण के उद्देश्यों के लिए एक लॉग फ़ाइल में पुन: निर्देशित किया जाता है।
कई आधुनिक प्रणालियों में, एक प्रोग्राम की मानक त्रुटि धारा को लॉग फ़ाइल में पुनर्निर्देशित किया जाता है, आमतौर पर त्रुटि विश्लेषण उद्देश्यों के लिए।


स्ट्रीम का उपयोग चेन एप्लिकेशन के लिए किया जा सकता है, जिसका अर्थ है कि एक प्रोग्राम की आउटपुट स्ट्रीम को दूसरे एप्लिकेशन में इनपुट स्ट्रीम होने के लिए रीडायरेक्ट किया जा सकता है। कई ऑपरेटिंग सिस्टम में इसे वर्टिकल बार कैरेक्टर द्वारा अलग किए गए एप्लिकेशन नामों को सूचीबद्ध करके व्यक्त किया जाता है, इस कारण से इसे अक्सर पाइपलाइन (यूनिक्स) कैरेक्टर कहा जाता है। एक प्रसिद्ध उदाहरण [[ पृष्ठ पर अंक लगाना ]] एप्लिकेशन का उपयोग है, जैसे [[अधिक (कमांड)]], डिस्प्ले पर आउटपुट स्ट्रीम के प्रदर्शन पर उपयोगकर्ता नियंत्रण प्रदान करता है।
विधाओ का उपयोग आवेदनों को चेन करने के लिए किया जा सकता है, इसका अर्थ है कि एक प्रोग्राम की आउटपुट विधाओ  को एक अन्य आवेदन के इनपुट विधाओ  के रूप में पुन: निर्देशित किया जा सकता है। बहुत से ऑपरेटिंग सिस्टमों में इसे आवेदन के नामों की सूची के द्वारा व्यक्त किया जाता है, जिन्हें वर्टिकल बार वर्ण द्वारा अलग किया जाता है, इसलिए इसे प्रायः पाइपलाइन चरित्र के रूप में कहा जाता है। एक प्रसिद्ध उदाहरण है पृष्ठांकन आवेदन का उपयोग, जैसे [[अधिक (कमांड)|अधिक]] उपयोगकर्ता को आउटपुट विधा के डिस्प्ले पर प्रदर्शन के नियंत्रण प्रदान करता है।


== पृष्ठभूमि ==
== पृष्ठभूमि ==
[[यूनिक्स]] से पहले के अधिकांश ऑपरेटिंग सिस्टम में, प्रोग्राम को उपयुक्त इनपुट और आउटपुट डिवाइस से स्पष्ट रूप से कनेक्ट करना पड़ता था। ओएस-विशिष्ट पेचीदगियों ने इसे एक थकाऊ प्रोग्रामिंग कार्य बना दिया। [[पंच कार्ड रीडर]], [[ चुंबकीय टेप ड्राइव ]], [[डिस्क ड्राइव]], [[लाइन प्रिंटर]], कार्ड पंच के मामले में कई प्रणालियों पर पर्यावरण सेटिंग्स का नियंत्रण प्राप्त करना, एक स्थानीय फ़ाइल तालिका का उपयोग करना, इच्छित डेटा सेट का निर्धारण करना और हार्डवेयर को सही ढंग से संभालना आवश्यक था। , या इंटरैक्टिव टर्मिनल।
[[यूनिक्स]] से पहले के अधिकांश ऑपरेटिंग सिस्टम में, प्रोग्रामों को विशेष रूप से उचित इनपुट और आउटपुट डिवाइसों से संपर्क करना पड़ता था। ऑपरेटिंग सिस्टम के विशेष विवरणों के कारण, यह एक थका देने वाला प्रोग्रामिंग कार्य होता था। बहुत से सिस्टमों पर पर्याप्त नियंत्रण प्राप्त करना, पर्याप्त पर्यावेक्षण पंक्ति के लिए पहुँच लेना, निश्चित डेटा सेट का निर्धारण करना और हार्डवेयर को सही ढंग से प्रबन्ध करना जरूरी था यदि [[पंच कार्ड रीडर]], [[ चुंबकीय टेप ड्राइव |चुंबकीय टेप ड्राइव]], [[डिस्क ड्राइव]], [[लाइन प्रिंटर]], कार्ड पंच या परस्पर संवादात्मक टर्मिनल विषय में हार्डवेयर को सही ढंग से प्रबन्ध करना था।


यूनिक्स के कई महत्वपूर्ण अग्रिमों में से एक अमूर्त डिवाइस था, जिसने प्रोग्राम को यह जानने या देखभाल करने की आवश्यकता को हटा दिया कि यह किस प्रकार के उपकरणों के साथ संचार कर रहा था।{{citation needed|date=December 2013}}. पुराने ऑपरेटिंग सिस्टम ने प्रोग्रामर पर एक रिकॉर्ड संरचना और अक्सर ऑर्थोगोनल#कंप्यूटर विज्ञान|गैर-ऑर्थोगोनल डेटा सिमेंटिक्स और डिवाइस नियंत्रण को मजबूर किया। यूनिक्स ने डेटा स्ट्रीम की अवधारणा के साथ इस जटिलता को समाप्त कर दिया: डेटा बाइट्स का एक क्रमबद्ध क्रम जिसे फ़ाइल के अंत तक पढ़ा जा सकता है। एक प्रोग्राम वांछित के रूप में बाइट भी लिख सकता है और इसकी आवश्यकता नहीं है, और आसानी से उनकी गिनती या समूहीकरण घोषित नहीं कर सकता है।
यूनिक्स के कई महत्वपूर्ण अग्रिमों में से एक अमूर्त डिवाइस था, जिसने प्रोग्राम को यह जानने या देखभाल करने की आवश्यकता को हटा दिया कि यह किस प्रकार के उपकरणों के साथ संचार कर रहा था।. पुराने ऑपरेटिंग सिस्टम ने प्रोग्रामर पर एक रिकॉर्ड संरचना और प्रायः ऑर्थोगोनल कंप्यूटर विज्ञान गैर-अष्टकोण डेटा अर्थ विज्ञान और डिवाइस नियंत्रण को विवश किया। यूनिक्स ने डेटा विधा की अवधारणा के साथ इस जटिलता को समाप्त कर दिया: डेटा बाइट्स का एक क्रमबद्ध क्रम जिसे फ़ाइल के अंत तक पढ़ा जा सकता है। एक प्रोग्राम वांछित के रूप में बाइट भी लिख सकता है और इसकी आवश्यकता नहीं है, और सरलता से उनकी गिनती या समूहीकरण घोषित नहीं कर सकता है।


यूनिक्स की एक और सफलता डिफ़ॉल्ट रूप से क्रमशः इनपुट और आउटपुट को टर्मिनल कीबोर्ड और टर्मिनल डिस्प्ले से स्वचालित रूप से जोड़ना था{{citation needed|date=December 2013}} — प्रोग्राम (और प्रोग्रामर) ने एक विशिष्ट इनपुट-प्रोसेस-आउटपुट प्रोग्राम के लिए इनपुट और आउटपुट स्थापित करने के लिए बिल्कुल कुछ नहीं किया (जब तक कि उसने एक अलग प्रतिमान नहीं चुना)। इसके विपरीत, पिछले ऑपरेटिंग सिस्टम को आमतौर पर कनेक्शन स्थापित करने के लिए कुछ-अक्सर जटिल-[[ नौकरी नियंत्रण भाषा ]] की आवश्यकता होती है, या समकक्ष बोझ को प्रोग्राम द्वारा ऑर्केस्ट्रेटेड किया जाना था।{{citation needed|date=October 2017}}
दूसरी यूनिक्स की प्रमुख उपलब्धि यह थी कि इनपुट और आउटपुट डिफ़ॉल्ट रूप से टर्मिनल कुंजीपटल और टर्मिनल प्रदर्शन के साथ संबंधित किए जाते थे, प्रोग्राम एक सामान्य इनपुट-प्रोसेस-आउटपुट प्रोग्राम के लिए इनपुट और आउटपुट स्थापित करने के लिए कुछ भी नहीं करता था। इसके विपरीत, पिछले ऑपरेटिंग सिस्टम सामान्यतः  संयोजन स्थापित करने के लिए कुछ कठिन - जॉब कंट्रोल भाषा की आवश्यकता थी, या समकक्ष बोझ को प्रोग्राम द्वारा संगठित किया जाना पड़ता था।।


चूंकि यूनिक्स ने मानक धाराएं प्रदान की हैं, इसलिए यूनिक्स [[सी (प्रोग्रामिंग भाषा)]] रनटाइम वातावरण भी इसका समर्थन करने के लिए बाध्य था। नतीजतन, अधिकांश सी रनटाइम वातावरण (और सी (प्रोग्रामिंग भाषा)#संबंधित भाषाएं|सी के वंश), ऑपरेटिंग सिस्टम की परवाह किए बिना, समकक्ष कार्यक्षमता प्रदान करते हैं।
चूंकि यूनिक्स ने मानक विधाये प्रदान की हैं, इसलिए यूनिक्स [[सी (प्रोग्रामिंग भाषा)]] रनटाइम वातावरण भी इसका समर्थन करने के लिए बाध्य था। फलस्वरूप, अधिकांश सी रनटाइम वातावरण और सी संबंधित भाषाएं, ऑपरेटिंग सिस्टम की परवाह किए बिना, समकक्ष कार्यक्षमता प्रदान करते हैं।


{{anchor|stdin}}
==मानक निविष्ट (stdin)==
मानक इनपुट एक स्ट्रीम है जिससे प्रोग्राम अपने इनपुट डेटा को पढ़ता है। प्रोग्राम read ऑपरेशन का उपयोग करके डेटा स्थानांतरण का अनुरोध करता है। सभी प्रोग्राम स्ट्रीम इनपुट की आवश्यकता नहीं होती है। उदाहरण के लिए, dir और ls प्रोग्राम जो एक निर्देशिका में संग्रहित फ़ाइलों के नाम प्रदर्शित करते हैं कमांड-लाइन तर्कों को ले सकते हैं, परंतु वे किसी भी विधा डेटा इनपुट के बिना अपने ऑपरेशन को निष्पादित करते हैं।


==मानक इनपुट (stdin)==<!-- This section is linked from [[COMMAND.COM]] -->
यदि पुनर्निर्देशित नहीं किया गया हो, तो मानक इनपुट मूल प्रक्रिया से विरासत में ली जाती है। एक पुनर्निर्देशित शेल के मामले में, यह सामान्यतः कुंजीपटल से संबद्ध होता है।
मानक इनपुट एक स्ट्रीम है जिससे एक प्रोग्राम अपने इनपुट डेटा को पढ़ता है। प्रोग्राम रीड ऑपरेशन के उपयोग से डेटा ट्रांसफर का अनुरोध करता है। सभी प्रोग्रामों को स्ट्रीम इनपुट की आवश्यकता नहीं होती है। उदाहरण के लिए, dir (कमांड) और ls प्रोग्राम (जो एक निर्देशिका में निहित फ़ाइल नाम प्रदर्शित करते हैं) कमांड-लाइन इंटरफ़ेस#Arguments|कमांड-लाइन तर्क ले सकते हैं, परंतु  बिना किसी स्ट्रीम डेटा इनपुट के अपना संचालन करते हैं।


जब तक पुनर्निर्देशन (कंप्यूटिंग), मानक इनपुट मूल प्रक्रिया से वि[[रास]]त में नहीं मिलता है। इंटरएक्टिव शेल के मामले में, जो आमतौर पर [[कीबोर्ड (कंप्यूटिंग)]] से जुड़ा होता है।
<code>std::cin</code>.स्टैंडर्ड इनपुट के लिए [[फाइल डिस्क्रिप्टर]] 0 (शून्य) होता है;[[पॉज़िक्स]] <code><unistd.h></code> परिभाषा में इसका नाम STDIN_FILENO होता है; संबंधित C <code><stdio.h></code> चर stdin होता है; उसी तरह, C++ <code><iostream></code> चर std::cin होता है।


मानक इनपुट के लिए [[फाइल डिस्क्रिप्टर]] 0 (शून्य) है; [[पॉज़िक्स]] <code><unistd.h></code> परिभाषा है <code>STDIN_FILENO</code>; संबंधित सी <code><stdio.h></code> चर है <code>FILE* stdin</code>; इसी तरह, सी ++ <code><iostream></code> चर है <code>std::cin</code>.
== मानक आउटपुट (स्टडआउट) ==
 
मानक आउटपुट एक विधा  है जिसमें एक प्रोग्राम अपना आउटपुट डेटा लिखता है। प्रोग्राम राइट ऑपरेशन के साथ डेटा ट्रांसफर का अनुरोध करता है। सभी प्रोग्राम आउटपुट उत्पन्न नहीं करते हैं। उदाहरण के लिए, [[नाम बदलें (कंप्यूटिंग)]] कमांड (विभिन्न प्रकार से [[एमवी (यूनिक्स)]], [[ चाल (आदेश) ]], या [[रेन (कमांड)]] कहा जाता है) सफलता पर मौन है।
== मानक आउटपुट (स्टडआउट) ==<!-- This section is linked from [[COMMAND.COM]] -->
मानक आउटपुट एक स्ट्रीम है जिसमें एक प्रोग्राम अपना आउटपुट डेटा लिखता है। प्रोग्राम राइट ऑपरेशन के साथ डेटा ट्रांसफर का अनुरोध करता है। सभी प्रोग्राम आउटपुट उत्पन्न नहीं करते हैं। उदाहरण के लिए, [[नाम बदलें (कंप्यूटिंग)]] कमांड (विभिन्न प्रकार से [[एमवी (यूनिक्स)]], [[ चाल (आदेश) ]], या [[रेन (कमांड)]] कहा जाता है) सफलता पर मौन है।


जब तक [[ पुनर्निर्देशन (यूनिक्स) ]] न हो, मानक आउटपुट मूल प्रक्रिया से प्राप्त होता है। इंटरएक्टिव शेल के मामले में, वह आमतौर पर टेक्स्ट टर्मिनल होता है जिसने प्रोग्राम को शुरू किया।
जब तक [[ पुनर्निर्देशन (यूनिक्स) ]] न हो, मानक आउटपुट मूल प्रक्रिया से प्राप्त होता है। इंटरएक्टिव शेल के मामले में, वह आमतौर पर टेक्स्ट टर्मिनल होता है जिसने प्रोग्राम को शुरू किया।
Line 37: Line 33:
मानक आउटपुट के लिए फाइल डिस्क्रिप्टर 1 (एक) है; पॉज़िक्स <code><unistd.h></code> परिभाषा है <code>STDOUT_FILENO</code>; संबंधित सी <code><stdio.h></code> चर है <code>FILE* stdout</code>; इसी तरह, सी ++ <code><iostream></code> चर है <code>std::cout</code>.
मानक आउटपुट के लिए फाइल डिस्क्रिप्टर 1 (एक) है; पॉज़िक्स <code><unistd.h></code> परिभाषा है <code>STDOUT_FILENO</code>; संबंधित सी <code><stdio.h></code> चर है <code>FILE* stdout</code>; इसी तरह, सी ++ <code><iostream></code> चर है <code>std::cout</code>.


== मानक त्रुटि (stderr) ==<!-- This section is linked from [[COMMAND.COM]] -->
== मानक त्रुटि ==
मानक त्रुटि एक अन्य आउटपुट स्ट्रीम है जो आमतौर पर प्रोग्राम द्वारा आउटपुट [[त्रुटि संदेश]] या डायग्नोस्टिक्स के लिए उपयोग की जाती है। यह मानक आउटपुट से स्वतंत्र एक स्ट्रीम है और इसे अलग से पुनर्निर्देशित किया जा सकता है।
मानक त्रुटि एक अन्य आउटपुट विधा है, जो सामान्यतः प्रोग्रामों द्वारा त्रुटि संदेश या नॉटिस को आउटपुट करने के लिए उपयोग की जाती है। यह मानक आउटपुट के अलग विधा के रूप में कार्य करती है और इसे अलग से पुनर्निर्देशित किया जा सकता है।


यह अर्ध-विधेय समस्या को हल करता है। अर्ध-विधेय समस्या, आउटपुट और त्रुटियों को अलग करने की इजाजत देता है, और मूल्यों की एक जोड़ी लौटने वाले फ़ंक्शन के समान होता है - सेमीप्रिडिकेट समस्या # मल्टीवैल्यूड रिटर्न | अर्ध-विधेय समस्या देखें: बहु मूल्यवान वापसी। सामान्य गंतव्य पाठ टर्मिनल है जिसने मानक आउटपुट पुनर्निर्देशित होने पर भी देखे जाने का सबसे अच्छा मौका प्रदान करने के लिए कार्यक्रम शुरू किया (इसलिए आसानी से नहीं देखा गया)। उदाहरण के लिए, एक पाइपलाइन (यूनिक्स) में एक प्रोग्राम का आउटपुट अगले प्रोग्राम या एक टेक्स्ट फ़ाइल के इनपुट पर पुनर्निर्देशित किया जाता है, परंतु  प्रत्येक प्रोग्राम की त्रुटियां अभी भी सीधे टेक्स्ट टर्मिनल में जाती हैं ताकि वास्तविक समय में उपयोगकर्ता द्वारा उनकी समीक्षा की जा सके।<ref>{{cite web |title=What are stdin, stdout and stderr in Linux? {{!}} CodePre.com |url=https://codepre.com/en/was-sind-stdin-stdout-und-stderr-unter-linux.html |access-date=8 April 2022 |language=en |date=2 December 2021}}</ref>
यह सेमी-प्रेडिकेट समस्या को हल करता है, जिससे आउटपुट और त्रुटियों को पहचाना जा सकता है, और इसे एक फ़ंक्शन जोड़ती है जो एक पेयर (जोड़ी) के रूप में वापसी करती है - अर्ध-विधेय समस्या देखें: बहु-मूल्यवान रिटर्न देखें। सामान्यतः मानक त्रुटि का उद्देश्य प्रोग्राम को प्रारंभ करने वाले पाठ टर्मिनल में होता है, जिससे अग रमानक आउटपुट पुनर्निर्देशित किया जाए , तो सबसे अच्छा अवसर प्रदान किया जाता है कि उसे देखा जा सके। उदाहरण के रूप में, एक पाइपलाइन में प्रोग्राम का आउटपुट अगले प्रोग्राम के इनपुट पर या एक पाठ फ़ाइल पर पुनर्निर्देशित किया जाता है, लेकिन प्रत्येक प्रोग्राम की त्रुटियाँ फिर भी सीधे पाठ टर्मिनल पर जाती हैं, जिससे उन्हें उपयोगकर्ता द्वारा वास्तविक समय में समीक्षा की जा सके।  
मानक आउटपुट और मानक त्रुटि को एक ही गंतव्य पर निर्देशित करना स्वीकार्य और सामान्य है, जैसे टेक्स्ट टर्मिनल। संदेश उसी क्रम में दिखाई देते हैं जैसे प्रोग्राम उन्हें लिखता है, जब तक कि [[डेटा बफ़र]] शामिल न हो। उदाहरण के लिए, सामान्य स्थितियों में मानक त्रुटि धारा अप्रभावित होती है परंतु  मानक आउटपुट धारा रेखा-बफर होती है; इस मामले में, मानक त्रुटि के लिए लिखा गया पाठ बाद में टर्मिनल पर पहले दिखाई दे सकता है, यदि मानक आउटपुट स्ट्रीम बफर अभी तक भरा नहीं है।


मानक त्रुटि के लिए फाइल डिस्क्रिप्टर को POSIX द्वारा 2 (दो) के रूप में परिभाषित किया गया है; <unistd.h> हेडर फ़ाइल प्रतीक प्रदान करती है <code>STDERR_FILENO</code>;<ref>{{cite web |url=http://pubs.opengroup.org/onlinepubs/009695399/basedefs/unistd.h.html |work=The Open Group Base Specifications Issue 6&mdash;IEEE Std 1003.1, 2004 Edition |title=&lt;unistd.h> |publisher=The Open Group |year=2004 }}</ref> संबंधित सी <code><stdio.h></code> चर है <code>FILE* stderr</code>. सी ++ <code><iostream></code> मानक हेडर इस स्ट्रीम से जुड़े दो चर प्रदान करता है: <code>std::cerr</code> और <code>std::clog</code>, पूर्व को अप्रभावित किया जा रहा है और बाद में उसी बफ़रिंग तंत्र का उपयोग किया जा रहा है जैसा कि अन्य सभी C++ स्ट्रीम में होता है।
मानक आउटपुट और मानक त्रुटि को एक ही गंतव्य पर निर्देशित करना, जैसे पाठ टर्मिनल, स्वीकार्य और सामान्य है। संदेश प्रोग्राम द्वारा लिखे जाने के आदेश में ही दिखाई देते हैं, जब तक कि बफरिंग का उपयोग न किया जाए। उदाहरण के लिए, सरल स्थितियों में मानक त्रुटि विधा अनबफर्ड होती है लेकिन मानक आउटपुट विधा लाइन-बफर्ड होती है; इस स्थिति में, यदि मानक आउटपुट विधा का बफर अभी भी रिक्त नहीं हुआ होता है, तो बाद में मानक त्रुटि पर लिखा गया पाठ पहले ही टर्मिनल पर दिख सकता है।
 
 
मानक त्रुटि के लिए पॉज़िक्स में फ़ाइल निरुपक को 2 (दो) के रूप में परिभाषित किया गया है ;<unistd.h> हेडर फ़ाइल मानक फिलेनो चिन्ह प्रदान करता है इससे संबंधित सी <code><stdio.h></code> चर मुद्रित कोष्ठक चर मानक है। सी++ <<code><iostream></code> मानक हेडर इस विधा के साथ दो चर प्रदान करता है: <code>std::cerr</code> और <code>std::clog</code>, पूर्व को अप्रभावित किया जा रहा है और बाद में उसी बफ़रिंग तंत्र का उपयोग किया जा रहा है जैसा कि अन्य सभी C++ विधा  में होता है।


[[बॉर्न शेल]]-शैली के गोले मानक त्रुटि को उसी गंतव्य पर पुनर्निर्देशित करने की अनुमति देते हैं जो मानक आउटपुट को उपयोग करने के लिए निर्देशित किया जाता है
[[बॉर्न शेल]]-शैली के गोले मानक त्रुटि को उसी गंतव्य पर पुनर्निर्देशित करने की अनुमति देते हैं जो मानक आउटपुट को उपयोग करने के लिए निर्देशित किया जाता है
  2>और 1
  2>&1


[[ सी खोल ]]-शैली के गोले मानक त्रुटि को उसी गंतव्य पर पुनर्निर्देशित करने की अनुमति देते हैं जो मानक आउटपुट का उपयोग करने के लिए निर्देशित किया जाता है
सीएश शैली के शेल मानक त्रुटि को मानक आउटपुट के निर्देशित गंतव्य पर पुनर्निर्देशित करने की अनुमति देते हैं।
   >&
   >&


1970 के दशक में यूनिक्स में मानक त्रुटि जोड़ी गई थी, जब उपयोगकर्ता के टर्मिनल पर प्रदर्शित होने के बजाय टाइपसेट होने वाले त्रुटि संदेशों के साथ कई व्यर्थ फोटोटाइपसेटिंग रन समाप्त हो गए।<ref>{{cite mailing list |url=https://minnie.tuhs.org/pipermail/tuhs/2013-December/006113.html |title=[TUHS] Graphic Systems C/A/T phototypesetter |work=The Unix Heritage Society |date=2013-12-11 |first=Steve |last=Johnson |author-link=Stephen C. Johnson |access-date=2020-11-07 |url-status=live |archive-url=https://web.archive.org/web/20200925010614/https://minnie.tuhs.org/pipermail/tuhs/2013-December/006113.html |archive-date=2020-09-25}}</ref>
1970 के दशक में कई बार फोटोटाइपसेटिंग रन्स के बाद स्टैंडर्ड एरर को यूनिक्स में जोड़ा गया, जिसमें त्रुटि संदेशों को टाइपसेट करने केअतिरिक्त उपयोगकर्ता के टर्मिनल पर प्रदर्शित किया जाना चाहिए।<ref>{{cite mailing list |url=https://minnie.tuhs.org/pipermail/tuhs/2013-December/006113.html |title=[TUHS] Graphic Systems C/A/T phototypesetter |work=The Unix Heritage Society |date=2013-12-11 |first=Steve |last=Johnson |author-link=Stephen C. Johnson |access-date=2020-11-07 |url-status=live |archive-url=https://web.archive.org/web/20200925010614/https://minnie.tuhs.org/pipermail/tuhs/2013-December/006113.html |archive-date=2020-09-25}}</ref>




Line 57: Line 55:


=== 1950 का दशक: [[फोरट्रान]] ===
=== 1950 का दशक: [[फोरट्रान]] ===
फोरट्रान के पास यूनिक्स फाइल डिस्क्रिप्टर के बराबर है: परंपरा के अनुसार, कई फोरट्रान कार्यान्वयन इकाई संख्या का उपयोग करते हैं <code>UNIT=5</CODE> for stdin, <CODE>UNIT=6</CODE> for stdout and <CODE>UNIT=0</CODE> for stderr. In Fortran-2003, the intrinsic <code>ISO_FORTRAN_ENV</code> मॉड्यूल नामित स्थिरांक शामिल करने के लिए मानकीकृत किया गया था <code>INPUT_UNIT</code>, <code>OUTPUT_UNIT</code>, और <code>ERROR_UNIT</code> यूनिट नंबरों को पोर्टेबल रूप से निर्दिष्ट करने के लिए।
फोरट्रान के पास यूनिक्स फाइल डिस्क्रिप्टर के बराबर है: परंपरा के अनुसार, कई फोरट्रान कार्यान्वयन इकाई संख्या का उपयोग करते हैं यूनिट<code>=5</CODE> for stdin, यूनिट <CODE>=6</CODE> for स्टडआउट और <CODE>UNIT=0</CODE> for stderr.   फोरट्रान-2003, आंतरिक <code>आईएसओ_फोरट्रान_ईएनवी</code> मॉड्यूल नामित स्थिरांक सम्मिलित करने के लिए मानकीकृत किया गया था इनपुट<code>_यूनिट</code> , <code>आउटपुट_यूनिट</code> , और त्रुटि <code>यूनिट</code> नंबरों को पोर्टेबल रूप से निर्दिष्ट करने के लिए।
<syntaxhighlight lang="fortran">
<syntaxhighlight lang="fortran">
! FORTRAN 77 example
! FORTRAN 77 example
Line 79: Line 77:


=== 1960: [[एल्गोल 60]] ===
=== 1960: [[एल्गोल 60]] ===
ALGOL 60 की कोई मानक फ़ाइल एक्सेस न होने के कारण आलोचना की गई थी।{{citation needed|date=February 2012}}
[[एल्गोल 60|एल्गोल]] 60 को मानक फ़ाइल पहुंच न होने के लिए आलोचना की गई थी।


=== 1968: [[एल्गोल 68]] ===
=== 1968: [[एल्गोल 68]] ===
ALGOL 68 की इनपुट और आउटपुट सुविधाओं को सामूहिक रूप से ट्रांसपुट कहा जाता था।<ref>Revised
[[एल्गोल 60|एल्गोल]] 68 की इनपुट और आउटपुट सुविधाओं को सामूहिक रूप से ट्रांसपुट कहा जाता था।<ref>Revised
Report on the Algorithmic Language Algol 68, Edited by
Report on the Algorithmic Language Algol 68, Edited by
A. van Wijngaarden,
A. van Wijngaarden,
Line 91: Line 89:
C.H. Lindsey,
C.H. Lindsey,
L.G.L.T. Meertens
L.G.L.T. Meertens
and R.G. Fisker, http://www.softwarepreservation.org/projects/ALGOL/report/Algol68_revised_report-AB.pdf, Section 10.3</ref> कॉर्नेलिस एच। ए। कोस्टर ने ट्रांसपुट मानक की परिभाषा का समन्वय किया। मॉडल में तीन मानक चैनल शामिल थे: <code>stand in</code>, <code>stand out</code>, और <code>stand back</code>.
and R.G. Fisker, http://www.softwarepreservation.org/projects/ALGOL/report/Algol68_revised_report-AB.pdf, Section 10.3</ref> कॉर्नेलिस एच। ए। कोस्टर ने ट्रांसपुट मानक की परिभाषा का समन्वय किया। प्रारूप में तीन मानक चैनल सम्मिलित थे: <code>stand in</code>, <code>stand out</code>, और <code>stand back</code>.


{|
{|
|+ '''Example'''
|+ '''उदाहरण'''
|colspan="2"|<syntaxhighlight lang="text">
|colspan="2"|<syntaxhighlight lang="text">
# ALGOL 68 example #
# ALGOL 68 example #
Line 105: Line 103:
)</syntaxhighlight>
)</syntaxhighlight>
|-
|-
!align="left"|Input:
!align="left"|इनपुट
!align="left"|Output:
!align="left"|आउटपुट
|-
|-
|<pre>3.14159</pre>
|<pre>3.14159</pre>
Line 114: Line 112:


=== 1970 का दशक: सी और यूनिक्स ===
=== 1970 का दशक: सी और यूनिक्स ===
[[सी प्रोग्रामिंग भाषा]] में, मानक इनपुट, आउटपुट और एरर स्ट्रीम क्रमशः मौजूदा यूनिक्स फाइल डिस्क्रिप्टर 0, 1 और 2 से जुड़े होते हैं।<ref>{{Cite web|url=http://linux.die.net/man/3/stdin|title = Stdin(3): Standard I/O streams - Linux man page}}</ref> POSIX वातावरण में [[ जादू संख्या (प्रोग्रामिंग) ]] के बजाय <unistd.h> परिभाषाओं STDIN_FILENO, STDOUT_FILENO या STDERR_FILENO का उपयोग किया जाना चाहिए। फाइल पॉइंटर्स स्टडिन, स्टडआउट और स्टेडर भी प्रदान किए जाते हैं।
[[सी प्रोग्रामिंग भाषा]] में, मानक इनपुट, आउटपुट, और त्रुटि विधा को उपस्थित यूनिक्स फ़ाइल निरुपक 0, 1 और 2 के साथ जोड़ा जाता है। पॉज़िक्स पर्यावरण में, ''<unistd.h>'' परिभाषाएं स्टडीन फिलेनो, एसटीडीआउट फिलेनो या एसटीडी ईआरआर _फिलेनो का उपयोग किया जाता है।


[[केन थॉम्पसन]] (मूल यूनिक्स ऑपरेटिंग सिस्टम के डिजाइनर और कार्यान्वयनकर्ता) ने [[संस्करण 5 यूनिक्स]] में संशोधित [[सॉर्ट (यूनिक्स)]] को मानक इनपुट के रूप में स्वीकार किया, जो अन्य उपयोगिताओं में फैल गया और संस्करण 8 में एक [[विशेष फ़ाइल]] के रूप में ऑपरेटिंग सिस्टम का एक हिस्सा बन गया। यूनिक्स। डायग्नोस्टिक्स [[संस्करण 6 यूनिक्स]] के माध्यम से मानक आउटपुट का हिस्सा थे, जिसके बाद डेनिस एम. रिची ने मानक त्रुटि की अवधारणा बनाई।<ref name="reader">{{cite techreport |first1=M. D. |last1=McIlroy |author-link1=Doug McIlroy |year=1987 |url=http://www.cs.dartmouth.edu/~doug/reader.pdf |title=A Research Unix reader: annotated excerpts from the Programmer's Manual, 1971–1986 |series=CSTR |number=139 |institution=Bell Labs}}</ref>
[[केन थॉम्पसन]] ने [[संस्करण 5 यूनिक्स]] में संशोधित [[सॉर्ट (यूनिक्स)]] को मानक इनपुट के रूप में स्वीकार किया, जो अन्य उपयोगिताओं में फैल गया और संस्करण 8 में एक [[विशेष फ़ाइल]] के रूप में ऑपरेटिंग सिस्टम का एक भाग  बन गया। यूनिक्स निदानिकी [[संस्करण 6 यूनिक्स]] के माध्यम से मानक आउटपुट के भाग थे, जिसके बाद डेनिस एम. रिची ने मानक त्रुटि की अवधारणा बनाई।<ref name="reader">{{cite techreport |first1=M. D. |last1=McIlroy |author-link1=Doug McIlroy |year=1987 |url=http://www.cs.dartmouth.edu/~doug/reader.pdf |title=A Research Unix reader: annotated excerpts from the Programmer's Manual, 1971–1986 |series=CSTR |number=139 |institution=Bell Labs}}</ref>




=== 1995: जावा ===
=== 1995: जावा ===
[[ जावा (प्रोग्रामिंग भाषा) ]] में, मानक धाराओं को किसके द्वारा संदर्भित किया जाता है {{Javadoc:SE|java/lang|System|in}} (stdin के लिए), {{Javadoc:SE|java/lang|System|out}} (स्टडआउट के लिए), और  {{Javadoc:SE|java/lang|System|err}} (stderr के लिए)।<ref>{{cite web|title=System (Java Platform SE 7)|url=http://docs.oracle.com/javase/7/docs/api/java/lang/System.html|access-date=20 July 2012}}</ref>
[[ जावा (प्रोग्रामिंग भाषा) ]] में, मानक धाराओं को किसके द्वारा संदर्भित किया जाता है {{Javadoc:SE|java/lang|System|in}} के लिए {{Javadoc:SE|java/lang|System|out}} (स्टडआउट के लिए), और  {{Javadoc:SE|java/lang|System|err}}के द्वारा संदर्भित किया जाता है।
<syntaxhighlight lang="java">
public static void main(String args[]) {
    try {
        BufferedReader br =
          new BufferedReader(new InputStreamReader(System.in));
        String s = br.readLine();
        double number = Double.parseDouble(s);
        System.out.println("Number is:" + number);
    } catch (Exception e) {
        System.err.println("Error:" + e.getMessage());
    }
}
</syntaxhighlight>


    try {
        BufferedReader br =
          new BufferedReader(new InputStreamReader(System.in));
        String s = br.readLine();
        double number = Double.parseDouble(s);
        System.out.println("Number is:" + number);
    } catch (Exception e) {
        System.err.println("Error:" + e.getMessage());


=== 2000 का दशक: .NET ===
== 2000 का दशक: .NET ==
C Sharp (प्रोग्रामिंग लैंग्वेज)|C# और अन्य .NET Framework|.NET भाषाओं में, मानक स्ट्रीम किसके द्वारा संदर्भित की जाती हैं <code>System.Console.In</code> (स्टडीन के लिए), <code>System.Console.Out</code> (स्टडआउट के लिए) और <code>System.Console.Error</code> (stderr के लिए)।<ref>{{Cite web|url=https://referencesource.microsoft.com/#mscorlib/system/console.cs,34|title=C# Reference Source, .NET Framework 4.7.1, mscorlib, Console class|website=referencesource.microsoft.com|access-date=2017-12-10}}</ref> स्टडिन और स्टडआउट स्ट्रीम के लिए बुनियादी पढ़ने और लिखने की क्षमता भी सीधे कक्षा के माध्यम से उपलब्ध है <code>System.Console</code> (उदा <code>System.Console.WriteLine()</code> की जगह इस्तेमाल किया जा सकता है <code>System.Console.Out.WriteLine()</code>).
C# और अन्य .NET भाषाओं में, मानक स्ट्रीम्स को सिस्टम.कंसोल.इन के लिए सिस्टम.कंसोल.आउट के लिए और सिस्टम.कंसोल..त्रुटि के द्वारा संदर्भित किया जाता है। स्टडीन और एसटीडीआउट विधा के लिए मूल रीड और राइट क्षमताएं सीधे सिस्टम.कंसोल कक्षा के माध्यम से भी पहुंचनी योग्य होती हैं (उदाहरण के लिए,सिस्टम.कंसोल आउट.राइट लाइन () के अतिरिक्त सिस्टम.कंसोल आउट.राइट लाइन () का उपयोग किया जा सकता है)


<code>System.Console.In</code>, <code>System.Console.Out</code> और <code>System.Console.Error</code> हैं <code>System.IO.TextReader</code> (stdin) और <code>System.IO.TextWriter</code> (stdout, stderr) ऑब्जेक्ट्स, जो केवल टेक्स्ट के आधार पर अंतर्निहित मानक धाराओं तक पहुंच की अनुमति देते हैं। मानक धाराओं के लिए पूर्ण बाइनरी एक्सेस के माध्यम से किया जाना चाहिए <code>System.IO.Stream</code> द्वारा लौटाई गई वस्तुएँ <code>System.Console.OpenStandardInput()</code>, <code>System.Console.OpenStandardOutput()</code> और <code>System.Console.OpenStandardError()</code> क्रमश।
<वाक्यविन्यास प्रकाश लैंग = सी #>
        // C# example
// सी # उदाहरण
सार्वजनिक स्थैतिक पूर्णांक मुख्य (स्ट्रिंग [] तर्क)
{
    कोशिश {
        स्ट्रिंग एस = System.Console.In.ReadLine ();
        डबल नंबर = डबल। पार्स (ओं);
        System.Console.Out.WriteLine(संख्या है: {0:F3} , संख्या);
        वापसी 0;


    // अगर पार्स () ने एक अपवाद फेंक दिया
public static int Main(string[] args)
    } कैच (ArgumentNullException) {
{
        System.Console.Error.WriteLine (कोई नंबर दर्ज नहीं किया गया था!);
    try {
    } कैच (प्रारूप अपवाद) {
        string s = System.Console.In.ReadLine();
        System.Console.Error.WriteLine (निर्दिष्ट मान मान्य संख्या नहीं है!);
        double number = double.Parse(s);
    } कैच (ओवरफ्लो अपवाद) {
        System.Console.Out.WriteLine("Number is: {0:F3}", number);
        System.Console.Error.WriteLine (निर्दिष्ट संख्या बहुत बड़ी है!);
        return 0;
    }
    // If Parse() threw an exception
    } catch (ArgumentNullException) {  
        System.Console.Error.WriteLine("No number was entered!");
    } catch (FormatException) {
        System.Console.Error.WriteLine("The specified value is not a valid number!");
    } catch (OverflowException) {
        System.Console.Error.WriteLine("The specified number is too big!");
    }
    return -1;
}


    वापसी -1;
  ' Visual Basic .NET example
}
</वाक्यविन्यास हाइलाइट>


Public Function Main() As Integer
    Try
        Dim s As String = System.Console.[In].ReadLine()
        Dim number As Double = Double.Parse(s)
        System.Console.Out.WriteLine("Number is: {0:F3}", number)
        Return 0
    ' If Parse() threw an exception
    Catch ex As System.ArgumentNullException
        System.Console.[Error].WriteLine("No number was entered!")
    Catch ex2 As System.FormatException
        System.Console.[Error].WriteLine("The specified value is not a valid number!")
    Catch ex3 As System.OverflowException
        System.Console.[Error].WriteLine("The specified number is too big!")
    End Try
    Return -1


सिंटैक्सहाइलाइट लैंग = वीबीनेट>
End Function
' विजुअल बेसिक .NET उदाहरण
   
सिस्टम.डायग्नोस्टिक्स.प्रोसेस कक्षा का उपयोग करते समय, उस कक्षा के उदाहरण गुण StandardInput, StandardOutput और StandardError का उपयोग प्रक्रिया के मानक स्ट्रीम्स तक पहुंचने के लिए किया जा सकता है।


सार्वजनिक समारोह मुख्य () पूर्णांक के रूप में
===2000 -: पायथन (2 या 3) ===
    कोशिश
निम्नलिखित उदाहरण में दिखाया गया है कि कैसे मानक इनपुट को साथ ही मानक आउटपुट और एक पाठ फ़ाइल में पुनर्निर्देशित किया जाता है
        Dim s as String = System.Console.[In].ReadLine()
        डबल के रूप में मंद संख्या = डबल। पार्स (एस)
        System.Console.Out.WriteLine( संख्या है: {0:F3} , संख्या)
        वापसी 0


    ' अगर पार्स() ने अपवाद फेंक दिया
  #!/usr/bin/env python
    Ex को System.ArgumentNullException के रूप में पकड़ें
        System.Console। [त्रुटि]। राइटलाइन (कोई संख्या दर्ज नहीं की गई थी!)
    Ex2 को System.FormatException के रूप में पकड़ें
        System.Console। [त्रुटि]। राइटलाइन (निर्दिष्ट मान मान्य संख्या नहीं है!)
    Ex3 को System.OverflowException के रूप में पकड़ें
        System.Console। [त्रुटि]। राइटलाइन (निर्दिष्ट संख्या बहुत बड़ी है!)
    प्रयास समाप्त करें


    वापसी -1
1 import sys
अंत समारोह
2 # Save the current stdout so that we can revert sys.stdout
</वाक्यविन्यास हाइलाइट>
3 # after we complete our redirection
 
4 stdin_fileno = sys.stdin
आवेदन करते समय <code>System.Diagnostics.Process</code> [[कक्षा (कंप्यूटर विज्ञान)]] उदाहरण [[संपत्ति (प्रोग्रामिंग)]] का उपयोग कर सकते हैं <code>StandardInput</code>, <code>StandardOutput</code>, और <code>StandardError</code> प्रक्रिया की मानक धाराओं तक पहुँचने के लिए उस वर्ग का।
5 stdout_fileno = sys.stdout
 
6 # Redirect sys.stdout to the file
===2000 - : पायथन (2 या 3) ===
7 sys.stdout = open('myfile.txt', 'w') 8ctr = 0
निम्न उदाहरण दिखाता है कि मानक इनपुट दोनों को मानक आउटपुट पर पुनर्निर्देशित कैसे किया जाए
9 for inps in stdin_fileno:
और एक पाठ फ़ाइल के लिए।
10 ctrs = str(ctr)
 
11 # Prints to the redirected stdout ()
<वाक्यविन्यास लैंग = पायथन लाइन = 1>
12  sys.stdout.write(ctrs + ") this is to the redirected --->" + inps + '\n')
#!/usr/bin/env python
13  # Prints to the actual saved stdout handler
आयात प्रणाली
14  stdout_fileno.write(ctrs + ") this is to the actual  --->" + inps + '\n')
# मौजूदा स्टडआउट को सेव करें ताकि हम sys.stdout को वापस ला सकें
15  ctr = ctr + 1
# हमारे द्वारा अपना पुनर्निर्देशन पूरा करने के बाद
16  # Close the file
stdin_fileno = sys.stdin
17  sys.stdout.close()
stdout_fileno = sys.stdout
18  # Restore sys.stdout to our old saved file handler
# फ़ाइल के लिए sys.stdout को पुनर्निर्देशित करें
19 sys.stdout = stdout_fileno
sys.stdout = open('myfile.txt', 'w')
सीटीआर = 0
stdin_fileno में आईपीएस के लिए:
    सीटीआर = एसटीआर (सीटीआर)
    # पुनर्निर्देशित स्टडआउट पर प्रिंट करता है ()
    sys.stdout.write(ctrs + ) यह रीडायरेक्ट करने के लिए है ---> + inps + '\n')
    # वास्तविक सहेजे गए स्टडआउट हैंडलर को प्रिंट करता है
    stdout_fileno.write(ctrs + ) यह वास्तविक है ---> + inps + '\n')
    सीटीआर = सीटीआर + 1
# फ़ाइल बंद करें
sys.stdout.close ()
# हमारे पुराने सहेजे गए फ़ाइल हैंडलर में sys.stdout को पुनर्स्थापित करें
sys.stdout = stdout_fileno
</वाक्यविन्यास हाइलाइट>


=== जीयूआई ===
=== जीयूआई ===
[[ ग्राफिकल यूज़र इंटरफ़ेस ]] (जीयूआई) हमेशा मानक धाराओं का उपयोग नहीं करते हैं; वे तब करते हैं जब जीयूआई अंतर्निहित स्क्रिप्ट और/या कंसोल प्रोग्राम के रैपर होते हैं, उदाहरण के लिए सिनैप्टिक (सॉफ़्टवेयर) पैकेज मैनेजर जीयूआई, जो डेबियन और/या उबंटू में उपयुक्त कमांड को लपेटता है। [[ कहाँ ]] प्रोजेक्ट द्वारा ज़ेनिटी और केडायलॉग जैसे स्क्रिप्टिंग टूल के साथ जीयूआई बनाए गए हैं<ref>{{cite web |url=https://www.linux-magazine.com/Issues/2009/99/Zenity-and-KDialog |first=Kristian |last=Kißling |title=Zenity और KDialog के साथ अपनी स्क्रिप्ट में ग्राफ़िक तत्व जोड़ना|website=[[Linux Magazine]] |date=2009 |access-date=2021-04-11}}</ref> स्टडिन, स्टडआउट और स्टेडर का उपयोग करें, और [[क्यूटी (सॉफ्टवेयर)]], [[जीटीके]], या अन्य समकक्ष मालिकाना विजेट ढांचे का उपयोग करके सी/सी ++ में प्रोग्राम किए गए और संकलित पूर्ण जीयूआई के बजाय सरल स्क्रिप्ट पर आधारित हैं।
[[ ग्राफिकल यूज़र इंटरफ़ेस |ग्राफिकल यूज़र इंटरफ़ेस]] (जीयूआई) हमेशा मानक स्ट्रीम्स का उपयोग नहीं करते हैं; जब जीयूआई मूल स्क्रिप्ट और/या कंसोल प्रोग्राम के अलग-अलग पैकेज को लपेटते हैं, उन समयों में करते हैं, जैसे कि डेबियन और/या उबंटू में अपार्ट आदेशों को लपेटता है सिनैप्टिक पैकेज मैनेजर जीयूआई। ज़ेनिटी और केडीई परियोजना द्वारा बनाए गए के-संवाद जैसे स्क्रिप्टिंग टूल के साथ बनाए गए जीयूआई में स्टडीन, स्टडआउट और स्टडर का उपयोग किया जाता है, और ये साधारित स्क्रिप्ट पर आधारित होते हैं जबकि C/C++ या अन्य समकक्ष एक पूरी जीयूआई कोड करके कंपाइल किया जाता है जिसमें  [[क्यूटी (सॉफ्टवेयर)]], [[जीटीके]] या अन्य प्राधिकरणीय विजेट फ्रेमवर्क का उपयोग होता है।


[[सेवा मेनू]], जैसा कि [[NeXTSTEP]] और [[Mac OS X]] पर लागू किया गया है, मानक स्ट्रीम के अनुरूप भी है। इन ऑपरेटिंग सिस्टम पर, ग्राफ़िकल एप्लिकेशन एक सिस्टम-वाइड मेनू के माध्यम से कार्यक्षमता प्रदान कर सकते हैं जो GUI में वर्तमान विक्ट: चयन पर संचालित होता है, चाहे वह किसी भी एप्लिकेशन में हो।
नेक्स्टस्टेप और मैक ओएस एक्स  पर लागू किए जाने वाले सेवाएं मानक विधा के समकक्ष भी हैं। इन ऑपरेटिंग सिस्टम पर, ग्राफिकल एप्लिकेशन सिस्टम-व्यापी मेनू के माध्यम से कार्यक्षमता प्रदान कर सकते हैं जो जीयूआई में वर्तमान चयनपर कार्य करता है


कुछ जीयूआई प्रोग्राम, मुख्य रूप से यूनिक्स पर, अभी भी मानक त्रुटि के लिए डिबग जानकारी लिखते हैं। अन्य (जैसे कई यूनिक्स मीडिया प्लेयर) मानक इनपुट से फ़ाइलें पढ़ सकते हैं। लोकप्रिय विंडोज प्रोग्राम जो अपने जीयूआई विंडो के अलावा एक अलग कंसोल विंडो खोलते हैं, एमुलेटर पीएसएक्स (एमुलेटर) और [[ से DOSBox ]] हैं।
कुछ जीयूआई प्रोग्राम, मुख्य रूप से यूनिक्स पर, अभी भी मानक त्रुटि के लिए डिबग जानकारी लिखते हैं। अन्य मानक इनपुट से फ़ाइलें पढ़ सकते हैं। लोकप्रिय विंडोज प्रोग्राम जो अपने जीयूआई विंडो के अतिरिक्त एक अलग कंसोल विंडो खोलते हैं, एमुलेटर पीएसएक्स और [[ से DOSBox |डॉसबॉक्स]] हैं।


[[जीटीके-सर्वर]] एक जीयूआई को साकार करने के लिए व्याख्या किए गए प्रोग्राम के साथ एक संचार इंटरफेस के रूप में स्टडिन का उपयोग कर सकता है।
[[जीटीके-सर्वर]] एक जीयूआई को साकार करने के लिए व्याख्या किए गए प्रोग्राम के साथ एक संचार इंटरफेस के रूप में स्टडिन का उपयोग कर सकता है।


सीएलआईएम प्रतिमान एक विस्तारित आउटपुट स्ट्रीम में भेजे गए जीयूआई तत्वों को प्रस्तुत करता है।
सीएलआईएम प्रतिमान एक विस्तारित आउटपुट विधा  में भेजे गए जीयूआई तत्वों को प्रस्तुत करता है।


== यह भी देखें ==
== यह भी देखें ==
* पुनर्निर्देशन (कंप्यूटिंग)
* पुनर्निर्देशन (कंप्यूटिंग)
* [[स्ट्रीम (कंप्यूटिंग)]]
* [[स्ट्रीम (कंप्यूटिंग)|विधा  (कंप्यूटिंग)]]
* इनपुट आउटपुट
* इनपुट आउटपुट
* सी फ़ाइल इनपुट/आउटपुट
* सी फ़ाइल इनपुट/आउटपुट
* [[सिसिन]] और [[सिसौट]]
* [[सिसिन]] और [[सिसौट]]
* OpenVMS#मानक स्ट्रीम
* OpenVMS#मानक विधा


==संदर्भ==
==संदर्भ==
Line 256: Line 243:
* [http://www.linfo.org/standard_error.html Standard Error Definition] - by The Linux Information Project
* [http://www.linfo.org/standard_error.html Standard Error Definition] - by The Linux Information Project


{{DEFAULTSORT:Standard Streams}}[[Category: यूनिक्स]]
{{DEFAULTSORT:Standard Streams}}
 
 


[[Category: Machine Translated Page]]
[[Category:Articles with hatnote templates targeting a nonexistent page|Standard Streams]]
[[Category:Created On 14/06/2023]]
[[Category:Created On 14/06/2023|Standard Streams]]
[[Category:Lua-based templates|Standard Streams]]
[[Category:Machine Translated Page|Standard Streams]]
[[Category:Pages with script errors|Standard Streams]]
[[Category:Templates Vigyan Ready|Standard Streams]]
[[Category:Templates that add a tracking category|Standard Streams]]
[[Category:Templates that generate short descriptions|Standard Streams]]
[[Category:Templates using TemplateData|Standard Streams]]
[[Category:यूनिक्स|Standard Streams]]

Latest revision as of 11:53, 2 July 2023


कंप्यूटर प्रोग्रामिंग में,मानक विधा कंप्यूटर प्रोग्राम के प्रारंभिक निष्पादन परियोजना और उसके आसपास के पर्यावरण के बीच एक-दूसरे से जुड़े हुए इनपुट और आउटपुट संचार चैनल होते हैं।तीन इनपुट/आउटपुट (I/O) संयोजन को मानक इनपुट,मानक आउटपुट और मानक त्रुटि कहा जाता हैं। प्रारंभ में, इनपुट/आउटपुट (I/O) शारीरिक रूप से जुड़े हुए सिस्टम कंसोल के माध्यम से होता था परंतु मानक विधा इसे अबस्ट्रैक्ट करते हैं। जब किसी कमांड को परस्पर संवादात्मक शैल के माध्यम से निष्पादित किया जाता है, तो विधा सामान्यतः वह टेक्स्ट टर्मिनल से जुड़े होते हैं जिस पर शैल चल रहा होता है, परंतु इन्हें पुनर्क्रिया या पाइपलाइन के माध्यम से बदला जा सकता है। सामान्यतः, एक चाइल्ड प्रोसेस अपने पैरेंट प्रोसेस के मानक विधा को अनुग्रहित करता है।

आवेदन

इनपुट, आउटपुट और त्रुटि के लिए मानक विधा

उपयोगकर्ताओं को सामान्यतः मानक विधा के रूप में इनपुट और आउटपुट चैनलों के रूप में जाना जाता है जो एक इनपुट उपकरण से आने वाले डेटा का प्रयोग करते हैं, या जो डेटा को आवेदन से लिखते हैं। इस डेटा में किसी भी कोडिंग के साथ पाठ हो सकता है, या बाइनरी डेटा हो सकता है। आधुनिक बहुत सारे सिस्टमों में, एक प्रोग्राम का मानक त्रुटि विधा सामान्यतः त्रुटि विश्लेषण के उद्देश्यों के लिए एक लॉग फ़ाइल में पुन: निर्देशित किया जाता है।

विधाओ का उपयोग आवेदनों को चेन करने के लिए किया जा सकता है, इसका अर्थ है कि एक प्रोग्राम की आउटपुट विधाओ को एक अन्य आवेदन के इनपुट विधाओ के रूप में पुन: निर्देशित किया जा सकता है। बहुत से ऑपरेटिंग सिस्टमों में इसे आवेदन के नामों की सूची के द्वारा व्यक्त किया जाता है, जिन्हें वर्टिकल बार वर्ण द्वारा अलग किया जाता है, इसलिए इसे प्रायः पाइपलाइन चरित्र के रूप में कहा जाता है। एक प्रसिद्ध उदाहरण है पृष्ठांकन आवेदन का उपयोग, जैसे अधिक उपयोगकर्ता को आउटपुट विधा के डिस्प्ले पर प्रदर्शन के नियंत्रण प्रदान करता है।

पृष्ठभूमि

यूनिक्स से पहले के अधिकांश ऑपरेटिंग सिस्टम में, प्रोग्रामों को विशेष रूप से उचित इनपुट और आउटपुट डिवाइसों से संपर्क करना पड़ता था। ऑपरेटिंग सिस्टम के विशेष विवरणों के कारण, यह एक थका देने वाला प्रोग्रामिंग कार्य होता था। बहुत से सिस्टमों पर पर्याप्त नियंत्रण प्राप्त करना, पर्याप्त पर्यावेक्षण पंक्ति के लिए पहुँच लेना, निश्चित डेटा सेट का निर्धारण करना और हार्डवेयर को सही ढंग से प्रबन्ध करना जरूरी था यदि पंच कार्ड रीडर, चुंबकीय टेप ड्राइव, डिस्क ड्राइव, लाइन प्रिंटर, कार्ड पंच या परस्पर संवादात्मक टर्मिनल विषय में हार्डवेयर को सही ढंग से प्रबन्ध करना था।

यूनिक्स के कई महत्वपूर्ण अग्रिमों में से एक अमूर्त डिवाइस था, जिसने प्रोग्राम को यह जानने या देखभाल करने की आवश्यकता को हटा दिया कि यह किस प्रकार के उपकरणों के साथ संचार कर रहा था।. पुराने ऑपरेटिंग सिस्टम ने प्रोग्रामर पर एक रिकॉर्ड संरचना और प्रायः ऑर्थोगोनल कंप्यूटर विज्ञान गैर-अष्टकोण डेटा अर्थ विज्ञान और डिवाइस नियंत्रण को विवश किया। यूनिक्स ने डेटा विधा की अवधारणा के साथ इस जटिलता को समाप्त कर दिया: डेटा बाइट्स का एक क्रमबद्ध क्रम जिसे फ़ाइल के अंत तक पढ़ा जा सकता है। एक प्रोग्राम वांछित के रूप में बाइट भी लिख सकता है और इसकी आवश्यकता नहीं है, और सरलता से उनकी गिनती या समूहीकरण घोषित नहीं कर सकता है।

दूसरी यूनिक्स की प्रमुख उपलब्धि यह थी कि इनपुट और आउटपुट डिफ़ॉल्ट रूप से टर्मिनल कुंजीपटल और टर्मिनल प्रदर्शन के साथ संबंधित किए जाते थे, प्रोग्राम एक सामान्य इनपुट-प्रोसेस-आउटपुट प्रोग्राम के लिए इनपुट और आउटपुट स्थापित करने के लिए कुछ भी नहीं करता था। इसके विपरीत, पिछले ऑपरेटिंग सिस्टम सामान्यतः संयोजन स्थापित करने के लिए कुछ कठिन - जॉब कंट्रोल भाषा की आवश्यकता थी, या समकक्ष बोझ को प्रोग्राम द्वारा संगठित किया जाना पड़ता था।।

चूंकि यूनिक्स ने मानक विधाये प्रदान की हैं, इसलिए यूनिक्स सी (प्रोग्रामिंग भाषा) रनटाइम वातावरण भी इसका समर्थन करने के लिए बाध्य था। फलस्वरूप, अधिकांश सी रनटाइम वातावरण और सी संबंधित भाषाएं, ऑपरेटिंग सिस्टम की परवाह किए बिना, समकक्ष कार्यक्षमता प्रदान करते हैं।

मानक निविष्ट (stdin)

मानक इनपुट एक स्ट्रीम है जिससे प्रोग्राम अपने इनपुट डेटा को पढ़ता है। प्रोग्राम read ऑपरेशन का उपयोग करके डेटा स्थानांतरण का अनुरोध करता है। सभी प्रोग्राम स्ट्रीम इनपुट की आवश्यकता नहीं होती है। उदाहरण के लिए, dir और ls प्रोग्राम जो एक निर्देशिका में संग्रहित फ़ाइलों के नाम प्रदर्शित करते हैं कमांड-लाइन तर्कों को ले सकते हैं, परंतु वे किसी भी विधा डेटा इनपुट के बिना अपने ऑपरेशन को निष्पादित करते हैं।

यदि पुनर्निर्देशित नहीं किया गया हो, तो मानक इनपुट मूल प्रक्रिया से विरासत में ली जाती है। एक पुनर्निर्देशित शेल के मामले में, यह सामान्यतः कुंजीपटल से संबद्ध होता है।

std::cin.स्टैंडर्ड इनपुट के लिए फाइल डिस्क्रिप्टर 0 (शून्य) होता है;पॉज़िक्स <unistd.h> परिभाषा में इसका नाम STDIN_FILENO होता है; संबंधित C <stdio.h> चर stdin होता है; उसी तरह, C++ <iostream> चर std::cin होता है।

मानक आउटपुट (स्टडआउट)

मानक आउटपुट एक विधा है जिसमें एक प्रोग्राम अपना आउटपुट डेटा लिखता है। प्रोग्राम राइट ऑपरेशन के साथ डेटा ट्रांसफर का अनुरोध करता है। सभी प्रोग्राम आउटपुट उत्पन्न नहीं करते हैं। उदाहरण के लिए, नाम बदलें (कंप्यूटिंग) कमांड (विभिन्न प्रकार से एमवी (यूनिक्स), चाल (आदेश) , या रेन (कमांड) कहा जाता है) सफलता पर मौन है।

जब तक पुनर्निर्देशन (यूनिक्स) न हो, मानक आउटपुट मूल प्रक्रिया से प्राप्त होता है। इंटरएक्टिव शेल के मामले में, वह आमतौर पर टेक्स्ट टर्मिनल होता है जिसने प्रोग्राम को शुरू किया।

मानक आउटपुट के लिए फाइल डिस्क्रिप्टर 1 (एक) है; पॉज़िक्स <unistd.h> परिभाषा है STDOUT_FILENO; संबंधित सी <stdio.h> चर है FILE* stdout; इसी तरह, सी ++ <iostream> चर है std::cout.

मानक त्रुटि

मानक त्रुटि एक अन्य आउटपुट विधा है, जो सामान्यतः प्रोग्रामों द्वारा त्रुटि संदेश या नॉटिस को आउटपुट करने के लिए उपयोग की जाती है। यह मानक आउटपुट के अलग विधा के रूप में कार्य करती है और इसे अलग से पुनर्निर्देशित किया जा सकता है।

यह सेमी-प्रेडिकेट समस्या को हल करता है, जिससे आउटपुट और त्रुटियों को पहचाना जा सकता है, और इसे एक फ़ंक्शन जोड़ती है जो एक पेयर (जोड़ी) के रूप में वापसी करती है - अर्ध-विधेय समस्या देखें: बहु-मूल्यवान रिटर्न देखें। सामान्यतः मानक त्रुटि का उद्देश्य प्रोग्राम को प्रारंभ करने वाले पाठ टर्मिनल में होता है, जिससे अग रमानक आउटपुट पुनर्निर्देशित किया जाए , तो सबसे अच्छा अवसर प्रदान किया जाता है कि उसे देखा जा सके। उदाहरण के रूप में, एक पाइपलाइन में प्रोग्राम का आउटपुट अगले प्रोग्राम के इनपुट पर या एक पाठ फ़ाइल पर पुनर्निर्देशित किया जाता है, लेकिन प्रत्येक प्रोग्राम की त्रुटियाँ फिर भी सीधे पाठ टर्मिनल पर जाती हैं, जिससे उन्हें उपयोगकर्ता द्वारा वास्तविक समय में समीक्षा की जा सके।

मानक आउटपुट और मानक त्रुटि को एक ही गंतव्य पर निर्देशित करना, जैसे पाठ टर्मिनल, स्वीकार्य और सामान्य है। संदेश प्रोग्राम द्वारा लिखे जाने के आदेश में ही दिखाई देते हैं, जब तक कि बफरिंग का उपयोग न किया जाए। उदाहरण के लिए, सरल स्थितियों में मानक त्रुटि विधा अनबफर्ड होती है लेकिन मानक आउटपुट विधा लाइन-बफर्ड होती है; इस स्थिति में, यदि मानक आउटपुट विधा का बफर अभी भी रिक्त नहीं हुआ होता है, तो बाद में मानक त्रुटि पर लिखा गया पाठ पहले ही टर्मिनल पर दिख सकता है।


मानक त्रुटि के लिए पॉज़िक्स में फ़ाइल निरुपक को 2 (दो) के रूप में परिभाषित किया गया है ;<unistd.h> हेडर फ़ाइल मानक फिलेनो चिन्ह प्रदान करता है इससे संबंधित सी <stdio.h> चर मुद्रित कोष्ठक चर मानक है। सी++ <<iostream> मानक हेडर इस विधा के साथ दो चर प्रदान करता है: std::cerr और std::clog, पूर्व को अप्रभावित किया जा रहा है और बाद में उसी बफ़रिंग तंत्र का उपयोग किया जा रहा है जैसा कि अन्य सभी C++ विधा में होता है।

बॉर्न शेल-शैली के गोले मानक त्रुटि को उसी गंतव्य पर पुनर्निर्देशित करने की अनुमति देते हैं जो मानक आउटपुट को उपयोग करने के लिए निर्देशित किया जाता है

  2>&1

सीएश शैली के शेल मानक त्रुटि को मानक आउटपुट के निर्देशित गंतव्य पर पुनर्निर्देशित करने की अनुमति देते हैं।

 >&

1970 के दशक में कई बार फोटोटाइपसेटिंग रन्स के बाद स्टैंडर्ड एरर को यूनिक्स में जोड़ा गया, जिसमें त्रुटि संदेशों को टाइपसेट करने केअतिरिक्त उपयोगकर्ता के टर्मिनल पर प्रदर्शित किया जाना चाहिए।[1]


समयरेखा

1950 का दशक: फोरट्रान

फोरट्रान के पास यूनिक्स फाइल डिस्क्रिप्टर के बराबर है: परंपरा के अनुसार, कई फोरट्रान कार्यान्वयन इकाई संख्या का उपयोग करते हैं यूनिट=5 for stdin, यूनिट =6 for स्टडआउट और UNIT=0 for stderr. फोरट्रान-2003, आंतरिक आईएसओ_फोरट्रान_ईएनवी मॉड्यूल नामित स्थिरांक सम्मिलित करने के लिए मानकीकृत किया गया था इनपुट_यूनिट , आउटपुट_यूनिट , और त्रुटि यूनिट नंबरों को पोर्टेबल रूप से निर्दिष्ट करने के लिए।

! FORTRAN 77 example
      PROGRAM MAIN
        INTEGER NUMBER
        READ(UNIT=5,*) NUMBER
        WRITE(UNIT=6,'(A,I3)') ' NUMBER IS: ',NUMBER
      END
! Fortran 2003 example
program main
  use iso_fortran_env
  implicit none
  integer :: number
  read (unit=INPUT_UNIT,*) number
  write (unit=OUTPUT_UNIT,'(a,i3)') 'Number is: ', number
end program


1960: एल्गोल 60

एल्गोल 60 को मानक फ़ाइल पहुंच न होने के लिए आलोचना की गई थी।

1968: एल्गोल 68

एल्गोल 68 की इनपुट और आउटपुट सुविधाओं को सामूहिक रूप से ट्रांसपुट कहा जाता था।[2] कॉर्नेलिस एच। ए। कोस्टर ने ट्रांसपुट मानक की परिभाषा का समन्वय किया। प्रारूप में तीन मानक चैनल सम्मिलित थे: stand in, stand out, और stand back.

उदाहरण
# ALGOL 68 example #
main:(
  REAL number;
  getf(stand in,($g$,number));
  printf(($"Number is: "g(6,4)"OR "$,number)); # OR #
  putf(stand out,($" Number is: "g(6,4)"!"$,number));
  newline(stand out)
)
इनपुट आउटपुट
3.14159
Number is: +3.142 OR Number is: +3.142!


1970 का दशक: सी और यूनिक्स

सी प्रोग्रामिंग भाषा में, मानक इनपुट, आउटपुट, और त्रुटि विधा को उपस्थित यूनिक्स फ़ाइल निरुपक 0, 1 और 2 के साथ जोड़ा जाता है। पॉज़िक्स पर्यावरण में, <unistd.h> परिभाषाएं स्टडीन फिलेनो, एसटीडीआउट फिलेनो या एसटीडी ईआरआर _फिलेनो का उपयोग किया जाता है।

केन थॉम्पसन ने संस्करण 5 यूनिक्स में संशोधित सॉर्ट (यूनिक्स) को मानक इनपुट के रूप में स्वीकार किया, जो अन्य उपयोगिताओं में फैल गया और संस्करण 8 में एक विशेष फ़ाइल के रूप में ऑपरेटिंग सिस्टम का एक भाग बन गया। यूनिक्स निदानिकी संस्करण 6 यूनिक्स के माध्यम से मानक आउटपुट के भाग थे, जिसके बाद डेनिस एम. रिची ने मानक त्रुटि की अवधारणा बनाई।[3]


1995: जावा

जावा (प्रोग्रामिंग भाषा) में, मानक धाराओं को किसके द्वारा संदर्भित किया जाता है System.in के लिए System.out (स्टडआउट के लिए), और System.errके द्वारा संदर्भित किया जाता है।

    try {
        BufferedReader br = 
          new BufferedReader(new InputStreamReader(System.in));
        String s = br.readLine();
        double number = Double.parseDouble(s);
        System.out.println("Number is:" + number);
    } catch (Exception e) {
        System.err.println("Error:" + e.getMessage());

2000 का दशक: .NET

C# और अन्य .NET भाषाओं में, मानक स्ट्रीम्स को सिस्टम.कंसोल.इन के लिए सिस्टम.कंसोल.आउट के लिए और सिस्टम.कंसोल..त्रुटि के द्वारा संदर्भित किया जाता है। स्टडीन और एसटीडीआउट विधा के लिए मूल रीड और राइट क्षमताएं सीधे सिस्टम.कंसोल कक्षा के माध्यम से भी पहुंचनी योग्य होती हैं (उदाहरण के लिए,सिस्टम.कंसोल आउट.राइट लाइन () के अतिरिक्त सिस्टम.कंसोल आउट.राइट लाइन () का उपयोग किया जा सकता है)।


       // C# example
public static int Main(string[] args)
{
    try {
        string s = System.Console.In.ReadLine();
        double number = double.Parse(s);
        System.Console.Out.WriteLine("Number is: {0:F3}", number);
        return 0;

    // If Parse() threw an exception
    } catch (ArgumentNullException) { 
        System.Console.Error.WriteLine("No number was entered!");
    } catch (FormatException) {
        System.Console.Error.WriteLine("The specified value is not a valid number!");
    } catch (OverflowException) {
        System.Console.Error.WriteLine("The specified number is too big!");
    }

    return -1;
}
  ' Visual Basic .NET example
Public Function Main() As Integer
    Try
        Dim s As String = System.Console.[In].ReadLine()
        Dim number As Double = Double.Parse(s)
        System.Console.Out.WriteLine("Number is: {0:F3}", number)
        Return 0

    ' If Parse() threw an exception
    Catch ex As System.ArgumentNullException
        System.Console.[Error].WriteLine("No number was entered!")
    Catch ex2 As System.FormatException
        System.Console.[Error].WriteLine("The specified value is not a valid number!")
    Catch ex3 As System.OverflowException
        System.Console.[Error].WriteLine("The specified number is too big!")
    End Try

    Return -1
End Function
   

सिस्टम.डायग्नोस्टिक्स.प्रोसेस कक्षा का उपयोग करते समय, उस कक्षा के उदाहरण गुण StandardInput, StandardOutput और StandardError का उपयोग प्रक्रिया के मानक स्ट्रीम्स तक पहुंचने के लिए किया जा सकता है।

2000 -: पायथन (2 या 3)

निम्नलिखित उदाहरण में दिखाया गया है कि कैसे मानक इनपुट को साथ ही मानक आउटपुट और एक पाठ फ़ाइल में पुनर्निर्देशित किया जाता है

  #!/usr/bin/env python
1 import sys
2 # Save the current stdout so that we can revert sys.stdout
3 #  after we complete our redirection
4 stdin_fileno = sys.stdin
5 stdout_fileno = sys.stdout
6 # Redirect sys.stdout to the file
7 sys.stdout = open('myfile.txt', 'w') 8ctr = 0
9 for inps in stdin_fileno:
10 ctrs = str(ctr)
11 # Prints to the redirected stdout ()
12  sys.stdout.write(ctrs + ") this is to the redirected --->" + inps + '\n')
13  # Prints to the actual saved stdout handler
14  stdout_fileno.write(ctrs + ") this is to the actual  --->" + inps + '\n')
15  ctr = ctr + 1
16  # Close the file
17  sys.stdout.close()
18  # Restore sys.stdout to our old saved file handler
19 sys.stdout = stdout_fileno

जीयूआई

ग्राफिकल यूज़र इंटरफ़ेस (जीयूआई) हमेशा मानक स्ट्रीम्स का उपयोग नहीं करते हैं; जब जीयूआई मूल स्क्रिप्ट और/या कंसोल प्रोग्राम के अलग-अलग पैकेज को लपेटते हैं, उन समयों में करते हैं, जैसे कि डेबियन और/या उबंटू में अपार्ट आदेशों को लपेटता है सिनैप्टिक पैकेज मैनेजर जीयूआई। ज़ेनिटी और केडीई परियोजना द्वारा बनाए गए के-संवाद जैसे स्क्रिप्टिंग टूल के साथ बनाए गए जीयूआई में स्टडीन, स्टडआउट और स्टडर का उपयोग किया जाता है, और ये साधारित स्क्रिप्ट पर आधारित होते हैं जबकि C/C++ या अन्य समकक्ष एक पूरी जीयूआई कोड करके कंपाइल किया जाता है जिसमें क्यूटी (सॉफ्टवेयर), जीटीके या अन्य प्राधिकरणीय विजेट फ्रेमवर्क का उपयोग होता है।

नेक्स्टस्टेप और मैक ओएस एक्स पर लागू किए जाने वाले सेवाएं मानक विधा के समकक्ष भी हैं। इन ऑपरेटिंग सिस्टम पर, ग्राफिकल एप्लिकेशन सिस्टम-व्यापी मेनू के माध्यम से कार्यक्षमता प्रदान कर सकते हैं जो जीयूआई में वर्तमान चयनपर कार्य करता है

कुछ जीयूआई प्रोग्राम, मुख्य रूप से यूनिक्स पर, अभी भी मानक त्रुटि के लिए डिबग जानकारी लिखते हैं। अन्य मानक इनपुट से फ़ाइलें पढ़ सकते हैं। लोकप्रिय विंडोज प्रोग्राम जो अपने जीयूआई विंडो के अतिरिक्त एक अलग कंसोल विंडो खोलते हैं, एमुलेटर पीएसएक्स और डॉसबॉक्स हैं।

जीटीके-सर्वर एक जीयूआई को साकार करने के लिए व्याख्या किए गए प्रोग्राम के साथ एक संचार इंटरफेस के रूप में स्टडिन का उपयोग कर सकता है।

सीएलआईएम प्रतिमान एक विस्तारित आउटपुट विधा में भेजे गए जीयूआई तत्वों को प्रस्तुत करता है।

यह भी देखें

संदर्भ

  1. Johnson, Steve (2013-12-11). "[TUHS] Graphic Systems C/A/T phototypesetter" (Mailing list). Archived from the original on 2020-09-25. Retrieved 2020-11-07.
  2. Revised Report on the Algorithmic Language Algol 68, Edited by A. van Wijngaarden, B.J. Mailloux, J.E.L. Peck, C.H.A. Koster, M. Sintzoff, C.H. Lindsey, L.G.L.T. Meertens and R.G. Fisker, http://www.softwarepreservation.org/projects/ALGOL/report/Algol68_revised_report-AB.pdf, Section 10.3
  3. McIlroy, M. D. (1987). A Research Unix reader: annotated excerpts from the Programmer's Manual, 1971–1986 (PDF) (Technical report). CSTR. Bell Labs. 139.


स्रोत

बाहरी संबंध