Связать буфер с потоком ввода-вывода
#include <stdio.h>int setvbuf( FILE *fp,char *buf,int mode,size_t size );
NULL
, либо указатель на буфер.libc
Функция setvbuf() связывает буфер с потоком ввода-вывода, указанным в fp. Вызывать функцию setvbuf() следует после открытия потока, но до выполнения операций чтения, записи или поиска.
Если buf не равен NULL
, то указанная память будет использоваться вместо автоматически выделенного буфера.
NULL
, size не равен 0, но при этом недостаточно памяти для выделения буфера.#include <stdio.h>#include <stdlib.h>int main( void ){char *buf;FILE *fp;fp = fopen( "file", "r" );buf = malloc( 1024 );setvbuf( fp, buf, _IOFBF, 1024 );/* work with fp */...fclose( fp );/* This is OUR buffer, so we have to free it. Do that AFTER* you've closed the file.c */free( buf );return (EXIT_SUCCESS);}
ANSI, POSIX 1003.1
Предыдущий раздел: Описание API системной библиотеки