setvbuf()

#include <stdio.h>
int setvbuf(FILE *stream, char *buf, int mode, size_t size);

Описание

Позволяет задать буфер, его размер и режим работы с указанным потоком

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

В версии С99 к параметрам stream и buf применен квалификатор restrict.

Возможными значениями параметра mode являются константы _IOFBF, _IONBF и _IOLBF, которые определены в заголовочном файле <stdio.h>. Когда параметр mode установлен равным значению _IOFBF, буферизация выполняется в расчете на полный объем буфера. Если mode равен значению _IOLBF, поток будет буферизирован построчно, т.е. буфер будет сбрасываться при каждой записи в выходной поток символа новой строки, а при чтении из входного потока появление символа новой строки приведет к прекращению подкачки в буфер. В любом случае буфер сбрасывается по окончании заполнения. Если установлен режим, определяемый значением _IONBF, поток вообще не буферизируется.

Функция setvbuf() возвращает нуль при успешном выполнении и ненулевое значение в противном случае.