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

From Vigyanwiki
No edit summary
Line 33: 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>





Revision as of 23:51, 25 June 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 का दशक: फोरट्रान

फोरट्रान के पास यूनिक्स फाइल डिस्क्रिप्टर के बराबर है: परंपरा के अनुसार, कई फोरट्रान कार्यान्वयन इकाई संख्या का उपयोग करते हैं UNIT=5 for stdin, UNIT=6 for stdout and UNIT=0 for stderr. In Fortran-2003, the intrinsic ISO_FORTRAN_ENV मॉड्यूल नामित स्थिरांक शामिल करने के लिए मानकीकृत किया गया था INPUT_UNIT, OUTPUT_UNIT, और ERROR_UNIT यूनिट नंबरों को पोर्टेबल रूप से निर्दिष्ट करने के लिए।

! 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

ALGOL 60 की कोई मानक फ़ाइल एक्सेस न होने के कारण आलोचना की गई थी।[citation needed]

1968: एल्गोल 68

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

Example
# 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)
)
Input: Output:
3.14159
Number is: +3.142 OR Number is: +3.142!


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

सी प्रोग्रामिंग भाषा में, मानक इनपुट, आउटपुट और एरर विधा क्रमशः मौजूदा यूनिक्स फाइल डिस्क्रिप्टर 0, 1 और 2 से जुड़े होते हैं।[3] POSIX वातावरण में जादू संख्या (प्रोग्रामिंग) के बजाय <unistd.h> परिभाषाओं STDIN_FILENO, STDOUT_FILENO या STDERR_FILENO का उपयोग किया जाना चाहिए। फाइल पॉइंटर्स स्टडिन, स्टडआउट और स्टेडर भी प्रदान किए जाते हैं।

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


1995: जावा

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

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());
    }
}


2000 का दशक: .NET

C Sharp (प्रोग्रामिंग लैंग्वेज)|C# और अन्य .NET Framework|.NET भाषाओं में, मानक विधा किसके द्वारा संदर्भित की जाती हैं System.Console.In (स्टडीन के लिए), System.Console.Out (स्टडआउट के लिए) और System.Console.Error (stderr के लिए)।[6] स्टडिन और स्टडआउट विधा के लिए बुनियादी पढ़ने और लिखने की क्षमता भी सीधे कक्षा के माध्यम से उपलब्ध है System.Console (उदा System.Console.WriteLine() की जगह इस्तेमाल किया जा सकता है System.Console.Out.WriteLine()).

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

   कोशिश {
       स्ट्रिंग एस = System.Console.In.ReadLine ();
       डबल नंबर = डबल। पार्स (ओं);
       System.Console.Out.WriteLine(संख्या है: {0:F3} , संख्या);
       वापसी 0;
   // अगर पार्स () ने एक अपवाद फेंक दिया
   } कैच (ArgumentNullException) {
       System.Console.Error.WriteLine (कोई नंबर दर्ज नहीं किया गया था!);
   } कैच (प्रारूप अपवाद) {
       System.Console.Error.WriteLine (निर्दिष्ट मान मान्य संख्या नहीं है!);
   } कैच (ओवरफ्लो अपवाद) {
       System.Console.Error.WriteLine (निर्दिष्ट संख्या बहुत बड़ी है!);
   }
   वापसी -1;

} </वाक्यविन्यास हाइलाइट>


सिंटैक्सहाइलाइट लैंग = वीबीनेट> ' विजुअल बेसिक .NET उदाहरण

सार्वजनिक समारोह मुख्य () पूर्णांक के रूप में

   कोशिश
       Dim s as String = System.Console.[In].ReadLine()
       डबल के रूप में मंद संख्या = डबल। पार्स (एस)
       System.Console.Out.WriteLine( संख्या है: {0:F3} , संख्या)
       वापसी 0
   ' अगर पार्स() ने अपवाद फेंक दिया
   Ex को System.ArgumentNullException के रूप में पकड़ें
       System.Console। [त्रुटि]। राइटलाइन (कोई संख्या दर्ज नहीं की गई थी!)
   Ex2 को System.FormatException के रूप में पकड़ें
       System.Console। [त्रुटि]। राइटलाइन (निर्दिष्ट मान मान्य संख्या नहीं है!)
   Ex3 को System.OverflowException के रूप में पकड़ें
       System.Console। [त्रुटि]। राइटलाइन (निर्दिष्ट संख्या बहुत बड़ी है!)
   प्रयास समाप्त करें
   वापसी -1

अंत समारोह </वाक्यविन्यास हाइलाइट>

आवेदन करते समय System.Diagnostics.Process कक्षा (कंप्यूटर विज्ञान) उदाहरण संपत्ति (प्रोग्रामिंग) का उपयोग कर सकते हैं StandardInput, StandardOutput, और StandardError प्रक्रिया की मानक धाराओं तक पहुँचने के लिए उस वर्ग का।

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

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

<वाक्यविन्यास लैंग = पायथन लाइन = 1>

  1. !/usr/bin/env python

आयात प्रणाली

  1. मौजूदा स्टडआउट को सेव करें ताकि हम sys.stdout को वापस ला सकें
  2. हमारे द्वारा अपना पुनर्निर्देशन पूरा करने के बाद

stdin_fileno = sys.stdin stdout_fileno = sys.stdout

  1. फ़ाइल के लिए sys.stdout को पुनर्निर्देशित करें

sys.stdout = open('myfile.txt', 'w') सीटीआर = 0 stdin_fileno में आईपीएस के लिए:

   सीटीआर = एसटीआर (सीटीआर)
   # पुनर्निर्देशित स्टडआउट पर प्रिंट करता है ()
   sys.stdout.write(ctrs + ) यह पुन: निर्देशित करने के लिए है ---> + inps + '\n')
   # वास्तविक सहेजे गए स्टडआउट हैंडलर को प्रिंट करता है
   stdout_fileno.write(ctrs + ) यह वास्तविक है ---> + inps + '\n')
   सीटीआर = सीटीआर + 1
  1. फ़ाइल बंद करें

sys.stdout.close ()

  1. हमारे पुराने सहेजे गए फ़ाइल हैंडलर में sys.stdout को पुनर्स्थापित करें

sys.stdout = stdout_fileno </वाक्यविन्यास हाइलाइट>

जीयूआई

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

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

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

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

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

यह भी देखें

संदर्भ

  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. "Stdin(3): Standard I/O streams - Linux man page".
  4. McIlroy, M. D. (1987). A Research Unix reader: annotated excerpts from the Programmer's Manual, 1971–1986 (PDF) (Technical report). CSTR. Bell Labs. 139.
  5. "System (Java Platform SE 7)". Retrieved 20 July 2012.
  6. "C# Reference Source, .NET Framework 4.7.1, mscorlib, Console class". referencesource.microsoft.com. Retrieved 2017-12-10.
  7. Kißling, Kristian (2009). "Zenity और KDialog के साथ अपनी स्क्रिप्ट में ग्राफ़िक तत्व जोड़ना". Linux Magazine. Retrieved 2021-04-11.


स्रोत

बाहरी संबंध