Как устроен буфер? язык С
Я в общем понял, что такое буфер.
Буфер - это временное место для хранения данных потока, пока они не понадобятся кому-либо.
Но я также прочитал о том, что он может отдать данные только если полностью заполнился.
int setvbuf(FILE *stream, char *buf, int mode, size_t size) Тут показаны параметры функции setvbuf, насколько я понимаю, для выделения буфера в памяти для потока. Но я только учу язык C, и я не могу понять, зачем тут нужен указатель на char с именем buf. Получается, что мне нужно иметь буфер, чтобы создать буфер. И я, насколько понимаю, указатель на char может быть указателем на символ, строку, число, много чисел, и кажется, что просто если нужно что-то передать в функцию, то пишут указатель на char. Можете мне объяснить принцип работы с буфером и почему для создания буфера мне нужен буфер?
Ответы (1 шт):
Буфер, выделенная область памяти, должен уже существовать - вы выделяете нужное количество памяти до вызова функции setvbuf
А эта функция связывает поток с данным буфером. После её вызова поток знает, что может использовать данную область памяти, и знает режим буферизации, который вы задали.