windows-进程的创建

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

实验一windows进程的创建实验学时:2实验类型:验证实验要求:必修一、实验目的本课题实习的目的是,加深对wiundows进程概念及进程管理各部分内容的理解;熟悉windows进程管理API的使用。二、实验要求1.将源程序编译、链接后形成master.exe和slave.exe文件。2.在命令行方式下输入……masterslave回车,将在master进程中创建slave进程,观察程序运行的结果。3.自己设计一个小程序,完成在master进程中启动该程序的操作。4.撰写上机报告。三、实验内容下面程序是两个简单的控制台应用程序,第一个程序(MASTER)运行第二个程序(SLAVE),并进入睡眠。SLAVE程序从命令行读取MASTER程序的进程ID(PID),并等待MASTER程序终止之后,SLAVE做了一些事情之后,也结束。四、实验代码及截图:#includewindows.h#includeiostream.h#includestdio.h#includestring.hvoidmain(intargc,char*argv[]){charcmd[128];if(argc!=1)strcpy(cmd,argv[1]);elsestrcpy(cmd,slave.exe);intpid=GetCurrentProcessId();coutprocessID:pidendl;coutMaster准备启动:cmd\n;sprintf(cmd+strlen(cmd),%d,pid);cout.flush();STARTUPINFOinfo;memset(&info,0,sizeof(info));info.cb=sizeof(info);PROCESS_INFORMATIONpinfo;if(!CreateProcess(NULL,cmd,NULL,NULL,FALSE,NORMAL_PRIORITY_CLASS,NULL,NULL,&info,&pinfo)){coutMaster:从进程cmd没有找到\n;coutMaster:重新输入从进程名\n;}coutMaser:睡觉去咯......................................................\n;cout.flush();Sleep(10000);for(inti=1;i5;i++)cout睡醒了\1\1\1\1\1\1\1\1\1\1\1\1\1\1\n;coutMaster:刷牙、洗脸、吃饭\n;coutMaster:结束!!!!!!\n;exit(0);}*/#includewindows.h#includeiostream.h#includestdio.hvoidmain(intargc,char*argv[]){if(argc!=2){coutSlave:请重新运行MASER.EXE.\n;exit(1);}intpid=atoi(argv[1]);HANDLEprocess=OpenProcess(PROCESS_QUERY_INFORMATION|SYNCHRONIZE,FALSE,pid);if(!process)coutSlave:Erroropeningprocess\n;coutSlave:我要等Master起床。\n;cout.flush();if(WaitForSingleObject(process,INFINITE)==WAIT_OBJECT_0)coutSlave:Master结束了,该我玩了!!!!!!\n;elsecoutSlave:出什么错了?\n;for(inti=1;i5;i++)couti我好高兴好高兴!!!\n;coutSlave我也该结束了,拜拜!\n;exit(0);}在master里运行slave五、实验结果分析本实验中有master和slave两个程序。master在单独执行后会先出现一部分实验运行结果,等待一段时间后在执行slave;salve却不能单独执行因为它的执行要等master执行结束后在执行;当我们以命令行的方式在master进程中创建slave进程执行时会发现执行结果和与单独执行master是一致的。

1 / 5
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功