| Сервер поддерживается Центром Информационных Технологий (095) 932-9212, 932-9213, 939-0783 E-mail: info@citforum.ru

Сервер содержит море(!) аналитической информации | CIT Forum CD-ROM

### SETBUF(3S)

НАЗВАНИЕ
setbuf, setvbuf - назначение буферов для потока

СИНТАКСИС

    	#include <stdio.h>

    	void setbuf (stream, buf)
    	FILE *stream;
    	char *buf;

    	void setvbuf (stream, buf, type, size)
    	FILE *stream;
    	char *buf;
    	int type, size;

ОПИСАНИЕ
Функция setbuf может быть использована после открытия потока, но перед тем, как выполнена первая из процедур ввода/вывода. При этом массив, на который указывает аргумент buf, будет использоваться вместо автоматически назначаемых буферов. Если значение buf равно NULL, ввод/вывод будет полностью небуферизованным.

Требуемый размер буфера определяется константой BUFSIZ, заданной во включаемом файле <stdio.h>:

    	char buf [BUFSIZ];

Функция setvbuf также может быть использована сразу после открытия потока, но перед тем, как выполнена первая из процедур ввода/вывода. Аргумент type определяет тип буферизации. Допустимы следующие типы буферизации, описанные в <stdio.h>:

_IOFBF
  Полная буферизация ввода/вывода.

_IOLBF
  Строчная буферизация вывода; буфер вывода выталкивается при выдаче символа перевода строки, заполнении буфера или запросе на ввод.

_IONBF
  Полное отсутствие буферизации ввода/вывода.

Если значение buf не равно NULL, массив, на который указывает buf, будет использоваться вместо автоматически назначаемых буферов. Аргумент size задает размер используемого буфера. Константа BUFSIZ, определенная во включаемом файле <stdio.h>, является разумным значением для размера буфера. Если ввод/вывод небуферизован, то аргументы buf и size игнорируются.

По умолчанию вывод на терминал является строчно буферизованным, а весь остальной ввод/вывод буферизуется полностью.

СМ. ТАКЖЕ
fopen(3S), getc(3S), malloc(3C), putc(3S), stdio(3S).

ДИАГНОСТИКА
Если указано некорректное значение для аргументов type или size, то функция setvbuf возвращает ненулевое значение. В противном случае результат равен 0.

ПРИМЕЧАНИЯ
Распространенной ошибкой является выделение под буфер локальной переменной блока без закрытия потока при выходе из блока.

Comments: info@citmgu.ru Designed by Andrey Novikov Copyright © CIT