Функция setvbuf#include <stdio.h> int setvbuf(FILE *stream, char *buf, int mode, size_t size); Функция setvbuf() позволяет программисту задать буфер, его размер и режим работы с указанным потоком. Массив символов, адресуемый параметром buf, используется в качестве буфера потока для операций ввода/вывода. Размер буфера устанавливается с помощью параметра size, а режим mode определяет, как будет выполняться буферизация. Если параметр buf равен нулю, функция setvbuf() выделяет собственный буфер. В версии C99 к параметрам stream и buf применен квалификатор restrict. Возможными значениями параметра mode являются _IOFBF, _IONBF и _IOLBF, которые определены в заголовочном файле <stdio.h>. Если параметр mode равен _IOFBF, для буферизации используется полный объем буфера. Если mode равен _IOLBF, поток будет буферизирован построчно, т.е. содержимое буфера будет дозаписываться в поток при каждой записи в поток вывода символа новой строки. Содержимое буфера также дозаписывается в поток при заполнении буфера. При чтении из входного потока появление разделителя строк приведет к прекращению подкачки в буфер. Если установлен режим _IONBF, поток не буферизируется. Функция setvbuf() возвращает нуль при успешном выполнении, а в противном случае ненулевое значение. ПримерДанный фрагмент программы устанавливает построчный режим вывода потока fp в буфер размером 128 символов. #include <stdio.h> char buffer[128]; . . . setbuf(fp, buffer); Зависимые функцииsetbuf() |
| |||||
|---|---|---|---|---|---|---|