⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 1.cpp

📁 进程通信与进程同步机制实践 有三个进程R、M、P
💻 CPP
字号:
#include<iostream.h>
#include<windows.h>
void main()
{
	unsigned char my_p;
	HANDLE hFileMap = OpenFileMapping(FILE_MAP_WRITE,false, "my_file");
	if(hFileMap == NULL)
    {
      cout<<"文件映射错! "<<endl;
      return ;
	}
	HANDLE sp = CreateSemaphore(NULL,0,10,"my_sp");
	HANDLE sr = CreateSemaphore(NULL,10,10,"my_sr");
	HANDLE metux = CreateSemaphore(NULL,1,1,"my_mutex");
	PVOID pvFile = MapViewOfFile(hFileMap,FILE_MAP_WRITE,0,0,0);
    char* p=(char*)pvFile;
	char arry[32];
	char flag='y';
	while(flag=='y')
	{
       cout<<"输出数据:"<<endl;
	   WaitForSingleObject(sp,INFINITE);
       WaitForSingleObject(metux,INFINITE);
	   my_p=*(p+2);
       strncpy(arry,p + 3 + my_p * 32, 32);
	   cout<<arry<<endl;
	   my_p=(my_p+1)%10;
	   *(p+2)=my_p;
       ReleaseSemaphore(metux, 1, NULL);
       ReleaseSemaphore(sr, 1, NULL);
	   cout<<"是否继续y/n:"<<endl;
	   cin>>flag;
	}


	UnmapViewOfFile(pvFile);
    CloseHandle(hFileMap);
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -