标准IO 计算缓冲区的长度

#include
#include
/**
 * 标准IO 提供三种类型的缓存
 * 全缓存,行缓存,不带缓存
 * 此程序为:标准IO 全缓存的计算
 * */
int main(int args, char **argv)  
{
FILE *fp = NULL;

if ((fp = fopen("./a.txt", "w+")) == NULL) 
{
perror("19:fail to fopen");
exit(EXIT_FAILURE);
}

putc('a', fp);  // 只有对文件进行读写操作了,buf才会为非0
printf("IO_cache = %d\n",  fp->_IO_buf_end - fp->_IO_buf_base);
}



#include
#include
/**
 * 标准IO 提供三种类型的缓存
 * 全缓存,行缓存,不带缓存
 * 此程序为:标准IO 行缓存的计算
 * */
int main(int args, char **argv)  
{
int i = 0;

for (i = 0; i < 1025; ++i) {/* 行缓存的边界值 
1024:不能输出,i1025刚好可以输出*/
fprintf(stdout, "a");
}
while (1);
}



你可能感兴趣的:(Ubuntu)