前面我们说了线程是一系列的指令,那么进程是什么呢?进程就是装下这些指令的容器。该容器除了线程,还包含资源等内容。一个进程至少要有一个线程。没有线程的进程就不叫进程
“进程和程序的区别:进程必须是正在运行的实例,而程序通常指的是存储在物理介质中的一个文件,程序运行后,就成了进程”
在windows中,进程有两种:
1.控制台应用程序。CMD程序就是典型的实例
2.GUI应用程序。
可以使用CreateProcess函数来创建进程
LPCTSTR lpApplicationName, 通常为NULL
可执行文件的名称
LPTSTR lpCommandLine,
一定要注意LPTSTR,该类型表示字符串可以被修改
通常该值被指定为可执行文件的名称,如果没有扩展名,就会自动添加.exe然后按照如下顺序来查找完整路径名称:
1.主调进程.exe文件所在的目录
2.主调进程的当前目录
3.windows系统目录 System32
4.PATH环境变量中列出的目录
LPSECURITY_ATTRIBUTES lpProcessAttributes
LPSECURITY_ATTRIBUTES lpThreadAttributes
BOOL bInheritHandles
是否允许进程内的可继承内核对象被子进程继承
DWORD dwCreationFlagsLPVOID lpEnvironment
环境变量,通常设置NULL
LPCTSTR lpCurrentDirectory
LPSTARTUPINFO lpStartupInfo
LPPROCESS_INFORMATION lpProcessInformation
);
正常情况下当主线程运行完毕,退出后进程就会被结束,但是windows为我们提供了一下方式来强制结束进程
ExitProcess
TerminateProcess 可以结束其他进程