在win32 console中实现多线程
有个问题想请教下
在win32 console里面想实现个简单的多线程程序,就是一个线程控制输入,一个线程保存在一个文件中。
为什么我这样用两个线程没法一个挨着一个实现啊?
/*程序功能:创建两个线程,一个用于从键盘接收输入字符保存到全局变量里,
,另一个将全局变量里的字符输出到文件*/
#include <stdio.h>
#include <stdlib.h>
//使用线程编程时,下面这两个头文件必须包含
#include <winsock.h>
#include <winbase.h>
void getInput(void);
void output(void);
char ch='A';
int main()
{
int i;
//创建线程1:用于从键盘接收字符,写入到全局变量ch中
DWORD ThreadID1 = 1;
HANDLE hRead1 = CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)getInput,NULL,0,&ThreadID1);//创建接收输入的线程
//创建线程2:用于将全局变量ch写入文件
DWORD ThreadID2 = 2;
HANDLE hRead2 = CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)output,NULL,0,&ThreadID2);//创建接收输入的线程
while(1){
}
system("PAUSE");
return 0;
}
void getInput(void)
{
int i;
while(1){
printf("input a char\n");
ch=getchar();
fflush(stdin);
}
}
void output(void)
{
long int i;
FILE * cfPtr=NULL;
if( (cfPtr=fopen("data.txt","w"))==NULL)
printf("can't open file\n");
else
while(1){
fputc(ch,cfPtr); //写文件
//fflush(cfPtr);
}
}