如何用多线程(一个线程不断写文件A,另一个线程不断从文件A读入写入另一文件B)!
现在,,两个函数我已写好,,请问怎么用多线程来实现!
/////////////////////
DWORD WINAPI fun1(void *)
{
FILE *fp;
char ch;
CRITICAL_SECTION cm_fp;
if ((fp=fopen("d:\\1.txt","a+"))==NULL)
{
printf("cannot open file\n");
exit(1);
}
ch=getchar();
while (ch!='#')
{
while (ch!='\n')
{
fputc(ch,fp);
fflush(fp);
ch=getchar();
}
ch=getchar();
}
fclose(fp);
}
DWORD WINAPI fun2(void *)
{
FILE *in,*out;
char buf[10];
CRITICAL_SECTION cm_fp;
if((in=fopen("d:\\1.txt","rb"))==NULL)
{
printf("cannot open infile\n");
exit(0);
}
if((out=fopen("d:\\2.txt","a+"))==NULL)
{
printf("cannot open outfile\n");
exit(0);
}
while (!feof(in))
{
fputs(fgets(buf,10,in),out);
fflush(out);
}
fclose(in);
fclose(out);
}
/////////////////////
DWORD WINAPI fun1(void *)
{
FILE *fp;
char ch;
CRITICAL_SECTION cm_fp;
if ((fp=fopen("d:\\1.txt","a+"))==NULL)
{
printf("cannot open file\n");
exit(1);
}
ch=getchar();
while (ch!='#')
{
while (ch!='\n')
{
fputc(ch,fp);
fflush(fp);
ch=getchar();
}
ch=getchar();
}
fclose(fp);
}
DWORD WINAPI fun2(void *)
{
FILE *in,*out;
char buf[10];
CRITICAL_SECTION cm_fp;
if((in=fopen("d:\\1.txt","rb"))==NULL)
{
printf("cannot open infile\n");
exit(0);
}
if((out=fopen("d:\\2.txt","a+"))==NULL)
{
printf("cannot open outfile\n");
exit(0);
}
while (!feof(in))
{
fputs(fgets(buf,10,in),out);
fflush(out);
}
fclose(in);
fclose(out);
}
...全文
相关推荐
C#实现多线程写入同一个文件的方法
主要介绍了C#实现多线程写入同一个文件的方法,涉及C#多线程操作文件读写的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下
C++中进行txt文件读入和写入的方法示例
主要给大家介绍了C++中进行txt文件读入和写入的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用C++具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
java用重定向方法从文件中读入或写入数据
主要为大家详细介绍了用重定向方法从文件中读入或写入数据,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
java多线程之A线程等B、C线程都执行完在执行的结果示例
此前被面试问道一道面试题,B,C线程都有自己的任务,A线程要在B,C线程都结束后开始执行,并且不允许有A线程循环等待空耗CPU现象。
java多线程有序读取同一个文件
主要为大家详细介绍了java多线程有序读取同一个文件,具有一定的参考价值,感兴趣的小伙伴们可以参考一下


