Chinaunix首页 | 论坛 | 博客
  • 博客访问: 541343
  • 博文数量: 104
  • 博客积分: 4131
  • 博客等级: 上校
  • 技术积分: 1137
  • 用 户 组: 普通用户
  • 注册时间: 2009-07-31 15:05
文章分类

全部博文(104)

文章存档

2011年(13)

2010年(23)

2009年(68)

我的朋友

分类: WINDOWS

2009-12-06 19:29:01

对文件的同步,没什么好的简单的实现方法,最笨的方法就是读文件中的数据来判断是否是写还是读,下面本人写了个简单的程序:
程序1:
#include
#include
#include
#pragma comment(lib,"Winmm.lib")
struct Parameter
{
 int name;
 int age;
 int number;
 char ch;
}Parameter[1];
void main()
{
 long n=10000000*5;
 FILE * fp;
 FILE * f;
 Parameter[0].name=1;
 Parameter[0].age=2;
 Parameter[0].number=3;
 Parameter[0].ch='a';
 fp=fopen("../bao.txt","r+");
 fprintf(fp,"%d %d %d %c",Parameter[0].name,Parameter[0].age,Parameter[0].number,Parameter[0].ch);
 fclose(fp);
 while(n-->=0)
 {
  fp=fopen("../bao.txt","r+");
  f=fopen("../baoqunmin.txt","a+");
  rewind(fp);
  fscanf(fp,"%d %d %d %c",&Parameter[0].name,&Parameter[0].age,&Parameter[0].number,&Parameter[0].ch);
  if(Parameter[0].ch=='z')
  {
   fprintf(f,"%d %d %d %c",Parameter[0].name,Parameter[0].age,Parameter[0].number,Parameter[0].ch);
   Parameter[0].ch='a';
   rewind(fp);
   fprintf(fp,"%d %d %d %c",Parameter[0].name,Parameter[0].age,Parameter[0].number,Parameter[0].ch);
  }
  fclose(fp);
  fclose(f);
 }
 
}
程序2:
#include
#include
#include
struct Parameter
{
 int name;
 int age;
 int number;
 char ch;
}Parameter[1];
void main()
{
 unsigned long m=1000;
 long n=10000000*5;
 FILE * fp;
 FILE * fq;
 while(n-->=0)
 {
  fq=fopen("../baomin.txt","a+");
  fp=fopen("../bao.txt","r+");
  rewind(fp);
  fscanf(fp,"%d %d %d %c",&Parameter[0].name,&Parameter[0].age,&Parameter[0].number,&Parameter[0].ch);
  if(Parameter[0].ch=='a')
  {
   fprintf(fq,"%d %d %d %c",Parameter[0].name,Parameter[0].age,Parameter[0].number,Parameter[0].ch);
   Sleep(m);
   Parameter[0].ch='z';
   rewind(fp);
   fprintf(fp,"%d %d %d %c",Parameter[0].name,Parameter[0].age,Parameter[0].number,Parameter[0].ch);
  }
  fclose(fp);
  fclose(fq);
 }
 
}
以上程序就可完成,一次读,一次写了!
阅读(1085) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~