setvbuf

王朝百科·作者佚名  2010-05-14
窄屏简体版  字體: |||超大  

函数名:setvbuf

功 能: 把缓冲区与流相关

用 法:int setvbuf(FILE *stream, char *buf, int type, unsigned size);

参数:stream :指向流的指针 ;

buf : 期望缓冲区的地址;

type : 期望缓冲区的类型:

_IOFBF(满缓冲):当缓冲区为空时,从流读入数据。或者当缓冲区满时,向流写入数 据。

_IOLBF(行缓冲):每次从流中读入一行数据或向流中写入一行数据。

_IONBF(无缓冲):直接从流中读入数据或直接向流中写入数据,而没有缓冲区。

size : 缓冲区内字节的数量。

注意:This function should be called once the file associated with the stream has already been opened but before any input or output operation has taken place.

意思是这个函数应该在打开流后,立即调用,在任何对该流做输入输出前

程序例:

#include <stdio.h>

int main(void)

{

FILE *input, *output;

char bufr[512];

input = fopen("file.in", "r+b");

output = fopen("file.out", "w");

/* set up input stream for minimal disk access,

using our own character buffer */

if (setvbuf(input, bufr, _IOFBF, 512) != 0)

printf("failed to set up buffer for input file

");

else

printf("buffer set up for input file

");

/* set up output stream for line buffering using space that

will be obtained through an indirect call to malloc */

if (setvbuf(output, NULL, _IOLBF, 132) != 0)

printf("failed to set up buffer for output file

");

else

printf("buffer set up for output file

");

/* perform file I/O here */

/* close files */

fclose(input);

fclose(output);

return 0;

}

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航