进程是一个正在运行程序的实例,主要包括两部分: 进程内核对象(一个小的数据结构),地址空间(代码,数据)。进程是不活泼的,线程是活泼的,每个进程必须包括一个线程,当创建一个线程的时候进程必须给线程分配一个虚拟的地址空间(堆栈,堆),还要给线程分配CPU时间片(量程)。
进程运行流程:首先创建一个进程内核对象,线程内核对象;然后初始化两个内核对象;加载命令行;环境变量;初始化C/C++运行期的全局变量,对C运行期内存单元分配函数(malloc和calloc)和其他低层输入/输出例程使用的内存栈进行初始化,C++类的全局变量;运行主线程(等线程);撤销进程(强烈建议重主线程中退出结束,不要用ExitProces(),TerminateProcess()).
Main函数
BOOL CreateProcess(
LPCTSTR lpApplicationName, // pointer to name of executable module
LPTSTR lpCommandLine, // pointer to command line string
LPSECURITY_ATTRIBUTES lpProcessAttributes, // process security attributes
LPSECURITY_ATTRIBUTES lpThreadAttributes, // thread security attributes
BOOL bInheritHandles, // handle inheritance flag
DWORD dwCreationFlags, // creation flags
LPVOID lpEnvironment, // pointer to new environment block
LPCTSTR lpCurrentDirectory, // pointer to current directory name
LPSTARTUPINFO lpStartupInfo, // pointer to STARTUPINFO
LPPROCESS_INFORMATION lpProcessInformation // pointer to PROCESS_INFORMATION
);
子进程
枚举进程
Windows学习旅程-进程(四)
最新推荐文章于 2021-08-15 23:40:17 发布
本文详细介绍了进程的概念及其组成部分,包括进程内核对象与地址空间。同时解释了进程与线程的区别,进程如何运行,以及创建进程的具体步骤。
646

被折叠的 条评论
为什么被折叠?



