cerr
सी ++ स्ट्रीम और stderr
सी फ़ाइल हैंडल है, दोनों मानक त्रुटि आउटपुट का प्रतिनिधित्व करते हैं।
आप उन्हें करने के लिए एक ही तरीका है कि आप अन्य नदियों और फ़ाइल पर लिखने लिखने संभालता है:
cerr << "Urk!\n";
fprintf (stderr, "Urk!\n");
मुझे यकीन है कि आप "की वसूली" इस संदर्भ में से क्या मतलब है नहीं कर रहा हूँ, उत्पादन मानक त्रुटि के लिए चला जाता है और बस। कार्यक्रम के बाद इसके बारे में परवाह करने के लिए नहीं है। यदि आपका मतलब है कि प्रोग्राम के बाहर से बाद में इसे कैसे सहेजना है, तो अगला पैराग्राफ देखें।
डिफ़ॉल्ट रूप से, वे अपने टर्मिनल के लिए जाना होगा, लेकिन उत्पादन की तरह कुछ के साथ कहीं और पुनः निर्देशित किया जा सकता है:
run_my_prog 2>error.out
और, हाँ, "स्क्रीन" उत्पादन होता है एक धारा (या फ़ाइल हैंडल), लेकिन यह आमतौर पर केवल इसलिए है क्योंकि stdout/cout
और stderr/cerr
डिफ़ॉल्ट रूप से आपकी "स्क्रीन" से जुड़े हुए हैं। (/dev/tty
के होते हुए भी करने के लिए सीधे लिखने जैसा मुश्किल चीजों)
run_my_prog >/dev/null 2>&1
: रीडायरेक्शन निम्नलिखित मामले में जहां कुछ भी नहीं अपनी स्क्रीन करने के लिए लिखा जाएगा में के रूप में इस को प्रभावित करेगा। वह स्निपेट बिट बाल्टी पर जाने के लिए मानक आउटपुट और मानक त्रुटि दोनों को रीडायरेक्ट करेगा।
नौसिखिया प्रश्न पूछने के लिए माफ़ी मांगने की आवश्यकता नहीं है। SO _all_ कौशल स्तर के लिए है। – paxdiablo