当前位置: 技术问答>linux和unix
如何实现缓冲区的控制?
来源: 互联网 发布时间:2015-07-06
本文导语: 如果想把文本一行一行的写入到缓冲区中,到达1M的时候,再将缓冲区中的内容一次性写入到文件中,该如何实现?望高手指点,无尽感谢! | 补充楼上的: 完整代码 void filebuf() { char...
如果想把文本一行一行的写入到缓冲区中,到达1M的时候,再将缓冲区中的内容一次性写入到文件中,该如何实现?望高手指点,无尽感谢!
|
补充楼上的:
完整代码
void filebuf()
{
char * newchar ;
FILE *fp;
fp = fopen("out.txt","wb+");
if (fp !=NULL)
{
setvbuf(fp,NULL,_IONBF,0);
fread(newchar,1024,1024,fp);
fwrite(newchar,1024,1024,fp);
fclose(fp);
}
exit(0);
}
完整代码
void filebuf()
{
char * newchar ;
FILE *fp;
fp = fopen("out.txt","wb+");
if (fp !=NULL)
{
setvbuf(fp,NULL,_IONBF,0);
fread(newchar,1024,1024,fp);
fwrite(newchar,1024,1024,fp);
fclose(fp);
}
exit(0);
}
|
no,no 是理解错了~~~ 在修改:
void filebuf()
{
char * newchar ;
int fd;
fd = open("out.txt","wb+");
if (fd > 0)
{
setvbuf(fd,NULL,_IONBF,0);
read(fd,newchar,1024);
write(fd, newchar,1024);
close(fd);
}
exit(0);
}
void filebuf()
{
char * newchar ;
int fd;
fd = open("out.txt","wb+");
if (fd > 0)
{
setvbuf(fd,NULL,_IONBF,0);
read(fd,newchar,1024);
write(fd, newchar,1024);
close(fd);
}
exit(0);
}