setvbuf() - C语言库函数

C库函数 int setvbuf(FILE *stream, char *buffer, int mode, size_t size) 定义了如何流应该被缓冲。

声明

下面是函数setvbuf()函数的声明。

int setvbuf(FILE *stream, char *buffer, int mode, size_t size)

参数

  • stream -- 这是一个文件对象标识一个开放的流指针。

  • buffer -- 这是用户分配的缓冲区。如果设置为NULL,该函数会自动分配一个指定大小的缓冲区。

  • mode -- 此指定文件缓冲模式:

mode 描述
_IOFBF Full buffering: 在输出时,数据被写入一旦缓冲区已满。在输入缓冲区填满时,输入操作要求和缓冲区是空的。
_IOLBF Line buffering: 在输出时,数据被写入到流或缓冲区满时,无论发生什么事时,当插入一个换行符。在输入缓冲区充满时要求输入操作,直到下一个换行符,缓冲区为空。
_IONBF No buffering: 不使用缓冲区。每个I/O操作,尽快写入。缓冲区和大小的参数将被忽略。
  • size -- 这是一个缓冲区的大小(以字节为单位)

返回值

这个函数返回其他成功返回0,则返回非零值。

例子

下面的例子显示了函数setvbuf()函数的用法。

Going to set full buffering onThis is yiibai.comThis output will go into buffand this will appear when programmwill come after sleeping 5 seconds