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

2020-12-24 21:22

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

18)

19)

20)

21)

22)

23)

24)

25)

26)

27)

28)

29)

30)

31)

32)

33)

34)

35)

36) BOOL GetMsgQInfo(PDWORD msgSize, PDWORD msgCnt); BOOL Send(LPVOID buf,int whichProcess, DWORD waitTime=INFINITE); BOOL Receive(LPVOID buf, DWORD waitTime=INFINITE); int Read(char **ReadMailBox); private: PMSGQ_HEADER pMsgInfo; HANDLE m_hMutex; HANDLE m_SemaphoreSend; //发送信号量 HANDLE m_SemaphoreReceive; //接收信号量 HANDLE m_hFileMap; //文件映像句柄 LPVOID m_hViewBuf; //文件映像映射到地址空间的首地址 LPCTSTR **strName; int nowProcess; DWORD *msgSize; int *msgCnt; };

5.4.2、 创建函数实现

1) BOOL CMsgQ::Create(LPCTSTR **strname,int nowprocess,int maxprocess,int

*msgmaxcount,DWORD *msgsize)

2) {

3) int i,j;

4) strName = new LPCTSTR * [maxprocess];

5) for( i=0 ;i<maxprocess ;i++)

6) strName[i] = new LPCTSTR [4];

7) for( i=0 ;i<maxprocess; i++)

8) for(j=0 ;j<4 ;j++)

9) strName[i][j]=strname[i][j];

10) nowProcess = nowprocess;

11) msgSize = new DWORD [maxprocess];

12) for( i=0 ;i<maxprocess ;i++)

13) msgSize[i]=msgsize[i];

14) msgCnt = new int [maxprocess];

15) for( i=0 ;i<maxprocess ;i++)

16) msgCnt[i]=msgmaxcount[i];

17) //先创建文件映像

18) m_hMutex = CreateMutex(NULL, false, strname[nowProcess][MutexEnum]); 19)

20) m_hFileMap = CreateFileMapping(INVALID_HANDLE_VALUE, NULL,

21) PAGE_READWRITE,0,sizeof(_MSGQ_HEADER)+


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

下一篇:洋流的影响

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

马上注册会员

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