गो में, कमांड और पाइपलाइनों के साथ काम करते समय मानक इनपुट (स्टडिन) के साथ इंटरैक्ट करना अक्सर एक महत्वपूर्ण कार्य होता है। हालाँकि, यह निर्धारित करना कि प्रोग्राम के निष्पादन को अवरुद्ध किए बिना stdin में डेटा है या नहीं, चुनौतीपूर्ण हो सकता है।
os.Stdin फ़ाइल ऑब्जेक्ट stdin का प्रतिनिधित्व करता है, और इसमें Go में अन्य फ़ाइल ऑब्जेक्ट के समान क्षमताएं हैं। यह हमें stdin के आकार सहित उसके बारे में जानकारी इकट्ठा करने के लिए स्टेट फ़ंक्शन का लाभ उठाने की अनुमति देता है।
यह पता लगाने के लिए कि stdin में डेटा है या नहीं, हम निम्नलिखित कोड का उपयोग करके इसके आकार की जांच कर सकते हैं:
func main() {
file := os.Stdin
fi, err := file.Stat()
if err != nil {
fmt.Println("file.Stat()", err)
}
size := fi.Size()
if size > 0 {
fmt.Printf("%v bytes available in Stdin\n", size)
} else {
fmt.Println("Stdin is empty")
}
}
जब इस कोड को एक निष्पादन योग्य में संकलित किया जाता है, तो इसे stdin में पाइप किए गए इनपुट को संसाधित करने के लिए फ़िल्टर के रूप में उपयोग किया जा सकता है। उदाहरण के लिए, इको टेस्ट | कमांड निष्पादित करना ./executable कंसोल पर "स्टडिन में उपलब्ध 5 बाइट्स" प्रिंट करेगा, जो दर्शाता है कि स्टडिन में डेटा है। इसके विपरीत, बिना किसी इनपुट के ./executable चलाने पर "Stdin खाली है" प्रदर्शित होगा।
यह दृष्टिकोण डेवलपर्स को बिना ब्लॉक किए stdin में डेटा की जांच करने और तदनुसार अपने प्रोग्राम के तर्क के साथ आगे बढ़ने की अनुमति देता है। पाइपलाइनों के साथ काम करते समय या stdin से उपयोगकर्ता इनपुट को संभालते समय यह विशेष रूप से उपयोगी होता है।
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3