Программирование на C и C++

Онлайн справочник программиста на C и C++

setvbuf

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

Прототип: 
Описание: 

Функция setvbuf() позволяет программисту задать буфер, его размер и режим работы для ука­занного потока. Массив символов, на который указывает аргумент buf, используется как буфер потока stream для операций ввода/вывода. Размер буфера устанавливается аргументом size, а mode определяет режим использования буфера. Если buf имеет нулевое значение, то буферизация во­обще не производится.

Допустимые значения для mode — это _IOFRF, _IONBF и _IOLBF. Они определены в stdio.h. Когда аргумент mode установлен в _IOFBF, имеет место полная буферизация. Этот режим уста­навливается по умолчанию. При установке mode в _IONBF поток не имеет буферов, независимо от значения buf. Если mode установлен в _IOLBF, буферизация потока производится построчно. Это значит, что очистка буфера производится каждый раз, когда в буфер для потока вывода записы­вается символ «новая строка»; для потоков ввода запрос на ввод считывает из буфера все буквы до новой строки. В обоих случаях очистка буфера производится также при его заполнении. Значение size должно быть больше нуля и меньше 32768.

Пример: