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()函数的用法。
#include <stdio.h> int main() { char buff[1024]; memset( buff, '