Описание функций Си



         

Setvbuf



     setvbuf

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

Синтаксис #include

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

Файл, содержащий stdio.h прототип

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

При вызове функции setvbuf, если параметр buf = NULL, буфер будет выделен посредством malloc; па- раметр size будет определять объем выделенной па- мяти. Параметр size определяет размер буфера и должен быть больше нуля.

Замечание. Параметр size не должен превышать 32767.

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

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

Параметр type имеет одно из следующих значений:

_IOFBF Файл использует буферы полностью (fully buffered). Если буфер пуст, следующая операция ввода пытается заполнить буфер. Перед тем, как данные записываются в файл, выводной буфер дол- жен полностью заполниться.

_IOLBF Файл использует буферы построчно (line buffered). Когда буфер пуст, следующая операция ввода пытается его заполнить. Тем не менее, при выводе буфер будет сброшен, как только в файл бу- дет записан символ перехода на новую строку.

_IONBF Файл не использует буферов (unbuffered). Параметры buf и size игнорируются. Каждая операция ввода будет считывать данные непосредственно из файла, и каждая операция вывода будет записывать данные непосредственно в файл.

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




Содержание  Назад  Вперед