C ++ setbuf () - C ++ मानक पुस्तकालय

C ++ में setbuf () फ़ंक्शन स्ट्रीम द्वारा I / O संचालन के लिए उपयोग किए जाने वाले आंतरिक बफ़र को सेट करता है।

setbuf () प्रोटोटाइप

 शून्य सेटब्यूफ़ (फ़ाइल * स्ट्रीम, चार * बफर);

यदि बफ़र अशक्त नहीं है, तो यह सेटविब (धारा, बफ़र, _IOFBF, BUFSIU) को कॉल करने के बराबर है।

यदि बफ़र अशक्त है, तो यह सेटविबुफ (धारा, NULL, _IONBF, 0) के बराबर है। इस स्थिति में बफ़रिंग बंद है।

इसे हेडर फ़ाइल में परिभाषित किया गया है।

setbuf () पैरामीटर

  • स्ट्रीम: एक फाइल स्ट्रीम।
  • बफ़र: एक बफ़र के लिए एक पॉइंटर जो अशक्त हो सकता है या नहीं। यदि यह अशक्त है, तो बफरिंग को बंद कर दिया जाता है, अन्यथा इसे कम से कम BUFSIZ बाइट्स चाहिए।

setbuf () वापसी मान

कोई नहीं

नीचे दिए गए 2 उदाहरण सेटब्यूफ () फ़ंक्शन के उपयोग को दर्शाते हैं। ये दोनों प्रोग्राम फ़ाइल ऑपरेशन का उपयोग करते हैं। पहले उदाहरण में, बफर को फ़ाइल की सामग्री को आंतरिक रूप से संग्रहीत करने के लिए सेटब्यूफ () का उपयोग करके सेट किया गया है।

अगले उदाहरण में, कथन setbuf(fp, NULL)बफ़रिंग को बंद कर देता है। तो फ़ाइल सामग्री को पढ़ने के लिए, फ़्रेड () का उपयोग किया जाता है।

उदाहरण 1: सेटब्यूफ () फ़ंक्शन कैसे काम करता है

 #include #include using namespace std; int main () ( char str() = "Buffered Stream"; char buffer(BUFSIZ); FILE *fp; fp=fopen ("test.txt","wb"); setbuf(fp,buffer); fwrite(str, sizeof(str), 1, fp); fflush(fp); fclose(fp); cout << buffer; return 0; )

जब आप प्रोग्राम चलाते हैं, तो आउटपुट होगा:

 बफर स्ट्रीम

उदाहरण 2: setbuf () बफ़रिंग के साथ फ़ंक्शन बंद हो गया

 #include #include using namespace std; int main () ( char str() = "Unbuffered Stream"; char strFromFile(20); FILE *fp; fp=fopen ("test.txt","wb+"); setbuf(fp,NULL); fwrite(str, sizeof(str), 1, fp); fflush(fp); /* We need to rewind the file pointer and read the file because the data from test.txt isn't saved in any buffer */ rewind(fp); fread(strFromFile, sizeof(strFromFile), 1, fp); fclose(fp); cout << strFromFile; return 0; )

जब आप प्रोग्राम चलाते हैं, तो आउटपुट होगा:

 अनपढ़ स्ट्रीम

दिलचस्प लेख...