操作系统实验报告_进程与进程通信(7)

2020-12-24 21:22

上海交通大学网络教育学院--计算机专业--操作系统作业---操作系统实验报告_进程与进程通信

5)

6)

7)

8)

9) BOOL bRet=FALSE; //返回值判断 _MSGQ_HEADER *potherMsgInfo; //目的地的队列索引 //打开目的地的邮箱 HANDLE

other_hFileMap=OpenFileMapping(FILE_MAP_WRITE,FALSE,strName[whichProcess][SpaceEnum]);

10) if(other_hFileMap == NULL)

11) {

12)

13)

14)

15)

16) QMessageBox::information(NULL,tr("提示"), tr("打开共享内存失败")); return FALSE; }

17) //打开目的地邮箱的发送信号量

18) HANDLE other_SemaphoreSend = OpenSemaphore(SEMAPHORE_ALL_ACCESS,

FALSE, strName[whichProcess][SendEnum]);

19) //打开目的地邮箱的接受信号量

20) HANDLE other_SemaphoreReceive = OpenSemaphore(SEMAPHORE_ALL_ACCESS,

FALSE, strName[whichProcess][ReceiveEnum]);

21)

22)

23) //ReleaseSemaphore(other_Semaphore,1,NULL);

24) //打开目的地邮箱的空间

25) QProcess gzip;

26) gzip.start("clock.exe", QStringList() << "28");

27) DWORD dRet=WaitForSingleObject(other_SemaphoreSend, waitTime); 28)

29) ori = MapViewOfFile(other_hFileMap, FILE_MAP_WRITE,0,0,0);

30) lpchar = (char *) ori;

31) potherMsgInfo=(_MSGQ_HEADER *)lpchar;

32)

33) HANDLE openmutex = OpenMutex(MUTEX_ALL_ACCESS, false,

strName[whichProcess][MutexEnum]);

34) //P操作

35)

36)

37) if(dRet == WAIT_OBJECT_0)

38) {

39) gzip.close();

40) if(potherMsgInfo->MsgNum != potherMsgInfo->MsgMaxCount) //再次判断是

否可写

41) {

42) WaitForSingleObject(openmutex, waitTime);


操作系统实验报告_进程与进程通信(7).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:洋流的影响

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: