计算全缓冲的大小

思路:打开一个空文件,不断向文件中写入一个字符,一个字符占一个字节,num++判断info.st_size中是否有数据,一旦有数据,立刻break。

然后输出num.

#include<stdlib.h>
#include<stdio.h>
#include<string.h>
#include<error.h>
#include<errno.h>
#include<unistd.h>
#include<strings.h>
#include<stdbool.h>

#include<sys/stat.h>
#include<sys/types.h>
#include<sys/wait.h>
#include<fcntl.h>
int main(int argc,char **argv)
{
FILE *fp = fopen("tmp","w");
if(fp == NULL)
{
fprintf(stderr,"fopen()%s failed:%s","tmp",strerror(errno));
exit(0);
}
struct stat info;

int size_num = 0;
while(1)
{
fputc('a',fp);
stat("tmp",&info);
if(info.st_size == 0)
{
size_num++;
}
else
{
printf("size_num:%d",size_num);
break;
}

}
fclose(fp);

remove("tmp");//删除文件
return 0;
}

 

posted @ 2016-02-16 11:29  高傲的monkey  阅读(213)  评论(0编辑  收藏  举报