欢迎来到天天文库
浏览记录
ID:55645534
大小:100.00 KB
页数:5页
时间:2020-05-22
《进程的创建撤销.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、实验一进程创建与撤销一.实验目的1.通过创建进程,观察正在运行的进程和终止进程的程序设计与调试操作,进一步熟悉操作系统的进程概念,理解windows2007进程生存过程.2.通过阅读和分析实验程序,学习创建进程,观察进程和终止进程的程序设计方法。二.背景知识三.1.创建进程:CreateProcess()调用的核心参数是可执行文件运行时的文件名以及其命令行。其核心参数和名称和类型如下:lpApplicationName:指定要执行的模块,包括可执行代码的EXE文件的文件名。lpCommandLine:指向一个以空结尾的串,该串定义了要执行。
2、该命令行是可以在Windows提示符下执行的的命令行命令行。lpProcessAttributes:指向一个SECURITY_ATTRIBUTES结构,该结构决定了返回的句柄是否可被子进程继承。lpThreadAttributes:指向一个SECURITY_ATTRIBUTES结构,该结构决定了返回的句柄是否可被子进程继承。bInheritHandles:表明新进程是否可继承创建者进程的句柄。dwCreationFlags:定义控制优先类和进程创建的附加标志。lpEnvironment:指向一个新进程的环境块。lpCurrentDirect
3、ory:指向一个以空结尾的串,该串定义了子进程的当前驱动器和当前目录。lpStartupInfo:指向一个STARTUPINFO结构,该结构定义了新进程的主窗口将如何显示。lpProcessInformation:指向进程信息描述结构,该结构接受关于新进程的描述信息。可执行文件运行时的文件名及其命令行,如lpCommandLine="c:\windows\system32\cmd.exe”或lpApplicationName=“c:windowssystem32cmd.exe”lpStartupInfor描述新进程的窗口显示情况
4、。定义STARTUPINFO结构,并赋予初始值,如:STARTUPINFOsi;memset(&si,0,sizeof(si));si.cb=sizeof(si);lpProcessInformation指向进程信息描述结构,接受关于新进程的描述信息,如:PROCESS_INFORMATIONpi所有进程都是以调用ExitProcess()或者TerminateProcess()函数结束的。TerminateProcess()API函数只要打开带有PROCESS_TERMINATE访问权的进程对象,就可以终止进程,并向系统返回指定的代码。如
5、果不知道所创建进程中所有线程的状态,最好使用TerminateProcess()终止进程。四.进程创建和撤销的代码#include#include#includeusingnamespacestd;voidmain(){PROCESS_INFORMATIONpi;STARTUPINFOsi;//一数据结构,定义新进程的窗口如何显示memset(&si,0,sizeof(si));//为该结构内存中数据初始化为0si.cb=sizeof(si);si.wShowWindow=SW_S
6、HOW;si.dwFlags=STARTF_USESHOWWINDOW;boolcreat=CreateProcess(NULL,"C:\Users\Stone\Desktop\示例代码\line演示\line\x64\Debug\line.exe",NULL,NULL,FALSE,NORMAL_PRIORITY_CLASS
7、CREATE_NEW_CONSOLE,NULL,NULL,&si,&pi);if(!creat){"进程创建成功!";}elsecout<<"进程创建成功!"<<"";if(!TerminateP
8、rocess(pi.hProcess,0)){cout<<"终止进程出错!";}else{cout<<"终止进程成功!";}intn;cin>>n;}当父进程执行时的运行结果如图:控制面板上的信息提示为:当销毁进程时:执行结果为:五.心得体会通过本实验的操作,简单了解了CreateProcess()函数的参数类型,以及参数中涉及的一些数据结构,对于进程创建过程中遇到的bug,能结合各数据结构的参数类型进行转换,得以成功完成进程的创建和销毁。
此文档下载收益归作者所有