[Powered by Google Translate] टॉमी: इस वीडियो में, हम के बारे में सीख जाओगे पुनः निर्देशित कर और पाइप. अब तक, हम कार्यों का उपयोग कर रहा है की तरह printf टर्मिनल के लिए उत्पादन डेटा और GetString की तरह कार्य करता है उपयोगकर्ता इनपुट हमारे लिए प्रदान करने की अनुमति कीबोर्ड का उपयोग कर कार्यक्रम. चलो जल्दी से एक प्रोग्राम है कि हो जाता है की एक पंक्ति पर एक नज़र रखना उपयोगकर्ता से इनपुट और फिर यह outputs. 7 लाइन पर, हम एक स्ट्रिंग के लिए उपयोगकर्ता उत्साह रहे हैं, और फिर 8 लाइन पर, हम मुद्रण कर रहे हैं वापस बाहर. चलो संकलन और हमारे कार्यक्रम चला. बढ़िया है. स्ट्रिंग हम प्रदान वापस गूँजती थी हमें टर्मिनल पर. ऐसा इसलिए हुआ क्योंकि printf समारोह करने के लिए लिखा था धारा मानक बाहर कहा जाता है, या एस - टी - घ बाहर. जब कुछ stdout के लिए लिखा है, यह डिफ़ॉल्ट रूप से है टर्मिनल द्वारा प्रदर्शित किया जाता है. तो यह है कि अगर सब ठीक है और अच्छा है, लेकिन क्या है, बजाय बस स्ट्रिंग प्रदर्शित करने, हम यह एक फ़ाइल को बचाने के लिए करना चाहता था? उदाहरण के लिए, हम को याद रखना चाहते हो सकता है कि क्या वास्तव में हमारे कार्यक्रम किया जब हम इसे एक विशेष इनपुट दिया बाद में. एक दृष्टिकोण के लिए हमारे सी कार्यक्रम में ऐसा करते हैं, का उपयोग किया जाएगा फाइल करने के लिए लिखने के लिए कुछ विशेष कार्य है कि हम करेंगे एक अन्य वीडियो में देखें. आसान भी है, हालांकि, किसी भी तरह से होगा एक फाइल करने के लिए stdout अनुप्रेषित. इस तरह, जब printf stdout के लिए लिखते हैं, सामग्री होगा एक फ़ाइल के बजाय लिखित टर्मिनल द्वारा प्रदर्शित किया जाता है. हम सिर्फ इतना है कि अधिक से अधिक एक संकेत जोड़कर कर सकते हैं पीछा किया, एक फ़ाइल नाम से आदेश के लिए हम हमारे कार्यक्रम पर अमल करने के लिए उपयोग. तो, के बजाय सिर्फ निष्पादित. / अनुप्रेषित, हम कर सकते हैं चलाते हैं. / अनुप्रेषित, हस्ताक्षर की तुलना में एक अधिक से पीछा किया, बाद से file.txt तरह फ़ाइल नाम,. चलो देखते हैं कि क्या होता है. ठीक है. सूचना है कि इस समय कुछ भी नहीं टर्मिनल पर प्रदर्शित किया गया था, लेकिन हम हमारे की सामग्री को संशोधित नहीं किया सी कार्यक्रम. चलो अब रास के साथ इस निर्देशिका की सामग्री की जांच. सही सभी. अब हम हमारी निर्देशिका में एक नई फ़ाइल file.txt बुलाया है, जो फ़ाइल नाम हम आपूर्ति जब हम अपने भाग गया है कार्यक्रम पुनर्निर्देशन. चलो ऊपर file.txt खुला. और यहाँ, हम देख सकते हैं कि stdout अनुप्रेषित के बाहर था file.txt नामक एक फाइल करने के लिए लिखा है. तो चलो पिछले आदेश को फिर से चलाने के लिए, लेकिन एक कंपनी की आपूर्ति विभिन्न इनपुट इस समय. ठीक है. चलो file.txt पर एक नज़र अब ले. हम यहाँ देखने के लिए कि फ़ाइल अधिलेखित किया गया है सकते हैं, तो हमारे मूल इनपुट वहाँ नहीं है. इसके बजाय अगर हम इस फाइल संलग्न करना चाहते हैं, नया डाल इनपुट फ़ाइल के मौजूदा सामग्री के नीचे, हम कर सकते हैं सिर्फ एक के दो अधिक से अधिक लक्षण के बजाय का उपयोग करें. चलो की कोशिश है कि. अब, अगर हम file.txt फिर से खोलने, हम हमारे दोनों के देख सकते हैं इनपुट लाइनों. कुछ मामलों में, हम किसी को छोड़ना चाहते हैं हो सकता है हमारे कार्यक्रम के उत्पादन. बल्कि एक फाइल करने के लिए उत्पादन में लिखने और फिर को हटाने से फ़ाइल जब हम इसके साथ कर रहे हैं, हम एक विशेष के लिए लिख सकते हैं / dev / null फ़ाइल कहा जाता है. जब कुछ / लिखा है dev/null-- या कम करने के लिए सिर्फ devnull - यह स्वचालित रूप से खारिज कर दिया है. तो अपने डेटा के लिए एक काला छेद रूप में devnull के बारे में सोचना. तो अब हम देखा है कि कैसे की तुलना में अधिक से अधिक संकेत अनुप्रेषित कर सकते हैं stdout, चलो देखते हैं कैसे हम में मानक अनुप्रेषित कर सकते हैं - या एस - टी - घ में - stdout के अनुरूप. हालांकि कार्यों की तरह printf बुलाया धारा लिखने stdout GetString, और इसी तरह के कार्यों के धारा से पढ़ा stdin कहा जाता है, जो डिफ़ॉल्ट रूप से, की धारा अक्षर कुंजीपटल पर टाइप. हम कम से कम चिह्न का उपयोग कर stdin पुनर्निर्देशित कर सकते हैं पीछा किया, एक फ़ाइल नाम से. अब, बजाय उपयोगकर्ता इनपुट के लिए उत्साह टर्मिनल, एक प्रोग्राम फ़ाइल को खोलने के हम निर्दिष्ट होगा और का उपयोग करें इनपुट के रूप में अपनी लाइनों. चलो देखते हैं कि क्या होता है. बढ़िया है. file.txt की पहली पंक्ति टर्मिनल में मुद्रित किया गया है क्योंकि हम GetString एक बार बुला रहे हैं. यदि हम हमारे कार्यक्रम में GetString करने के लिए एक और फोन किया था, file.txt की अगली पंक्ति के रूप में इस्तेमाल किया गया होगा है कि कॉल करने के लिए इनपुट. फिर, हम अपने सी कार्यक्रम में नहीं संशोधित किया है. हम केवल बदल रहे हैं कि कैसे हम इसे चलाने के. और यह भी याद है, हम stdout इस समय पुनर्निर्देशित नहीं किया है, तो कार्यक्रम के उत्पादन में अभी भी था टर्मिनल पर प्रदर्शित होता है. हम, ज़ाहिर है, दोनों stdin पुनर्निर्देशित कर सकते हैं stdout और इस तरह से. अब, file2.txt file.txt की पहली पंक्ति में शामिल है. तो, इन ऑपरेटरों का उपयोग कर, हम पढ़ने के लिए और करने में सक्षम किया गया है पाठ फ़ाइलों से लिखने के लिए. अब, चलो देखते हैं कि हम के रूप में एक कार्यक्रम के उत्पादन का उपयोग कर सकते हैं एक अन्य कार्यक्रम में इनपुट. तो यहाँ एक साधारण सी कार्यक्रम मैं यहाँ hello.c कहा जाता है. जैसा कि आप देख सकते हैं, यह सिर्फ outputs "हाय वहाँ उपयोगकर्ता के लिए ". अगर मैं करने के लिए निवेश के रूप में नमस्ते के उत्पादन का उपयोग करें पुनर्निर्देशित करना चाहते हैं - एक और कार्यक्रम - मैं पहली बार एक फाइल करने के लिए हैलो की stdout अनुप्रेषित सकता input.txt, तो है कि एक ही अनुप्रेषित की stdin अनुप्रेषित फाइल input.txt. तो मैं / हैलो input.txt> कर सकते हैं. इस पर अमल के लिए Enter दबाएं. द्वारा पीछा किया. / अनुप्रेषित < , input.txt और निष्पादित. तो हम एक सेमीकोलन के साथ यह थोड़ा कम कर सकते हैं, जो की अनुमति देता है हमें एक ही लाइन पर दो या दो से अधिक कमांड चलाने के लिए. इसलिए मैं कह सकता है. / नमस्ते> input.txt, अर्धविराम, / Final.txt. तो, अगर हम final.txt खोलते हैं, हम वास्तव में हम क्या थे के लिए देख रहे हैं: वर्णमाला क्रम में अद्वितीय नामों की एक सूची है, एक पाठ फ़ाइल को बचाया. वैसे, हम भी कहा है तरह < students.txt | बिल्कुल uniq> final.txt करने के लिए एक ही बात है, हम ऑपरेटरों में देखा है में से प्रत्येक का उपयोग इस वीडियो. मेरा नाम टॉमी है, और इस CS50 है.