Funkcija setvbuf () C ++ tiek izmantota, lai mainītu vai norādītu bufera režīmu un bufera lielumu.
setvbuf () prototips
int setvbuf (FILE * straume, char * buferis, int režīms, size_t size);
setvbuf()
Funkcija maina buferizācijas režīmu konkrētā faila plūsmā uz vērtību režīmā.
Ja buferis nav nulle, bufera lielums ir lielums, pretējā gadījumā funkcija automātiski piešķir buferi (pamatojoties uz lieluma vērtību).
Tas ir definēts galvenes failā.
setvbuf () parametri
- straume: failu straume.
- buferis: rādītājs uz buferi, kas jāizmanto straumējot.
- režīms: buferēšanas režīms. Buferēšanas režīmu veidi ir:
- _IOFBF: pilna buferizācija
- _IOLBF: līnijas buferizācija
- _IONBF: nav buferizācijas
- lielums: bufera lielums baitos.
setvbuf () Atgriešanās vērtība
Par setvbuf()
funkcija atgriež nulles uz panākumiem un nulle par neveiksmes.
Piemērs: Kā darbojas funkcija 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; )
Palaidot programmu, izeja būs:
… Šī ir otrā rinda Šī ir pirmā rinda Šī ir otrā rinda