C ++ में setvbuf () फ़ंक्शन का उपयोग बफर के बफरिंग मोड और आकार को बदलने या निर्दिष्ट करने के लिए किया जाता है।
setvbuf () प्रोटोटाइप
int setvbuf (फ़ाइल * स्ट्रीम, चार * बफर, इंट मोड, size_t आकार);
setvbuf()
समारोह बहुलक का मान को दी फ़ाइल धारा की प्रतिरोधक मोड बदल जाता है।
यदि बफर शून्य नहीं है, तो बफर का आकार आकार है, अन्यथा फ़ंक्शन स्वचालित रूप से एक बफर आवंटित करता है (आकार के मूल्य के आधार पर)।
इसे हेडर फ़ाइल में परिभाषित किया गया है।
setvbuf () पैरामीटर
- स्ट्रीम: एक फाइल स्ट्रीम।
- बफर: स्ट्रीम द्वारा उपयोग किए जाने वाले बफर को इंगित करता है।
- मोड: बफरिंग मोड। बफरिंग मोड के प्रकार हैं:
- _IOFBF: पूर्ण बफरिंग
- _IOLBF: लाइन बफरिंग
- _IONBF: कोई बफरिंग नहीं
- आकार: बाइट्स में बफर का आकार।
setvbuf () वापसी मान
setvbuf()
समारोह रिटर्न सफलता और विफलता पर अशून्य पर शून्य।
उदाहरण: कैसे setvbuf () फ़ंक्शन काम करता है
#include #include #define SIZE 1024 using namespace std; int main() ( char buffer(SIZE) = "… "; char str() = "This is first lineThis is second line"; FILE *fp = fopen("test.txt","wb+"); /* no buffering, buffer remains unchanged */ setvbuf(fp,buffer,_IONBF,SIZE); fwrite(str, sizeof(str), 1, fp); cout << buffer << endl; /* line buffering, only a single line is buffered */ setvbuf(fp,buffer,_IOLBF,SIZE); fwrite(str, sizeof(str), 1, fp); cout << buffer << endl; /* full buffering, all the contents are buffered */ setvbuf(fp,buffer,_IOFBF,SIZE); fwrite(str, sizeof(str), 1, fp); cout << buffer << endl; fclose(fp); return 0; )
जब आप प्रोग्राम चलाते हैं, तो आउटपुट होगा:
… यह दूसरी पंक्ति है यह पहली पंक्ति है यह दूसरी पंक्ति है