The function setvbuf () in C

The function int setvbuf (FILE * stream, char * buffer, int mode, size_t size) in Standard C Library determines how a Stream should be buffered.

The function int setvbuf (FILE * stream, char * buffer, int mode, size_t size) in Standard C Library determines how a Stream should be buffered.

Declare setvbuf () function in C

Below is the declaration for the setvbuf () function in C:

 int setvbuf ( FILE * stream , char * buffer , int mode , size_t size ) 

Parameters

stream - This is the pointer to a FILE object that identifies the opened stream.

buffer - This is the buffer allocated. If set to NULL, the function automatically allocates a Buffer with the specified size.

mode - Defines the mode for buffering files.

mode Description_IOFBF Full buffering - On the output, the data is written once the buffer is full. On the input, the buffer is filled when an input operation is requested and the buffer is empty _IOLBF Line buffering - On the output, data is recorded when encountered: or a newline character (new line) is inserted into Stream or when the buffer is full . On the Input, the buffer is filled in to the newline character next to the input when an input operation is requested and the buffer is empty _IONBF No buffering - No buffers are used. Each I / O activity is recorded as soon as possible. Buffer parameters and size are ignored

size - This is the buffer size (byte value).

Returns the value

This function returns 0 if successful. If not, the function returns a value other than 0.

For example

The following program C illustrates how to use the setvbuf () function in C:

 #include #include int main () { char buff [ 1024 ]; memset ( buff , '' , sizeof ( buff )); fprintf ( stdout , "Chuan bi buffern" ); setvbuf ( stdout , buff , _IOFBF , 1024 ); fprintf ( stdout , "Hoc C co ban va nang cao tai QTM !!!n" ); fprintf ( stdout , "Phan noi dung nay se duoc demn" ); fflush ( stdout ); return ( 0 ); } 

Compile and run the above program to produce the following results. Here the program still buffers the output into the buff until it encounters the first call to fflush (), then it starts buffering output.

According to Tutorialspoint

Previous lesson: Function setbuf () in C

Next lesson: Function tmpfile () in C

4 ★ | 1 Vote