Russian Belarusian English German Japanese Ukrainian

Rashka.studio - игры и приложения для Android! Заходи, ждём тебя =)

Setbuf

CuBook05

Функция

Назначает буфер для потока stream.
 
Синтаксис

#include <stdio.h>
void setbuf(FILE *stream, char *buf);
 
Прототип

stdio.h
 
Описание

Функция setbuf выделяет буфер buf для использования в операциях ввода/вывода - вместо автоматически выделяемого буфера. Он будет использоваться только после того, как данный поток stream будет открыт.

При использовании функции setbuf, если параметр buf = NULL, ввод/вывод производится без буфера; в противном случае буфер используется.

Буфер должен быть длиной BUFSIZE байтов (данная константа определяется в файле stdio.h).

Стандартный ввод и вывод stdin и stdout не используют буферов, если они не были переназначены; в противном случае, ввод и вывод производиться с буферизацией.

Функция unbuffered (небуферизованный ввод/вывод) означает, что символы, записываемые в поток, поступают непосредственно в файл или на устройство; в то время как buffered (буферизованный ввод/вывод) означает, что символы накапливаются и затем записываются, как блок.

Функция setbuf может привести к непредвиденным результатам, если она вызывается для потока stream, причем не следует немедленно за операцией открытия или вызовом функции fseek. Вызов функции setbuf после того, как поток stream обработан без буферов, разрешен, и не вызовет ошибок.

Наиболее распространенной причиной ошибки является размещение буфера, в качестве automatiс (локальной) переменной и затем попытка закрыть файл до выхода из функции, в которой был объявлен буфер.
 
Возвращаемое значение

Нет.
 
Переносимость

Функция поддерживаются на системах UNIX и стандартом ANSI C.
 
Пример

#include <stdio.h>
char buf[BUFSIZE];

int main(void)
{
int i;
setbuf(stdout,buf);
puts("Это тест буферизованного вывода.\n");
puts("Этот вывод осуществляется в buf\n");
puts("и вы ничего не увидите, пока буффер не заполнится\n");
puts("или вы не сбросите его.\n");
fflush(stdout);
return 0;
}
Если заметили ошибку, выделите фрагмент текста и нажмите Ctrl+Enter

Добавить комментарий