当前位置:嗨网首页>书籍在线阅读

27-int setvbuf()函数

  
选择背景色: 黄橙 洋红 淡粉 水蓝 草绿 白色 选择字体: 宋体 黑体 微软雅黑 楷体 选择字体大小: 恢复默认

13.7.3  int setvbuf() 函数

setvbuf() 函数的原型是:

int setvbuf(FILE * restrict fp, char * restrict buf, int mode, size_t size);

setvbuf() 函数创建了一个供标准I/O函数替换使用的缓冲区。在打开文件后且未对流进行其他操作之前,调用该函数。指针 fp 识别待处理的流, buf 指向待使用的存储区。如果 buf 的值不是 NULL ,则必须创建一个缓冲区。例如,声明一个内含1024个字符的数组,并传递该数组的地址。然而,如果把 NULL 作为 buf 的值,该函数会为自己分配一个缓冲区。变量 size 告诉 setvbuf() 数组的大小( size_t 是一种派生的整数类型,第5章介绍过)。 mode 的选择如下: _IOFBF 表示完全缓冲(在缓冲区满时刷新); _IOLBF 表示行缓冲(在缓冲区满时或写入一个换行符时); _IONBF 表示无缓冲。如果操作成功,函数返回 0 ,否则返回一个非零值。

假设一个程序要存储一种数据对象,每个数据对象的大小是3000字节。可以使用 setvbuf() 函数创建一个缓冲区,其大小是该数据对象大小的倍数。