简单实现文件的同步

1195阅读 0评论2009-12-06 red_eyed_hare
分类:WINDOWS

对文件的同步,没什么好的简单的实现方法,最笨的方法就是读文件中的数据来判断是否是写还是读,下面本人写了个简单的程序:
程序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);
 }
 
}
以上程序就可完成,一次读,一次写了!
上一篇:server2003 IIS服务器配置
下一篇:windows下定时器的使用