正常退出
1、Main函数调用return。
2、进程调用exit(),标准c库
3、进程调用_exit()或者_Exit(),属于系统调用
4、进程最后一个线程返回
5、最后一个线程调用pthread_exit
异常退出
1、调用abort
2、当进程收到某些信号时,比如ctrl+c
3、最后一个线程对取消(cancellation)请求做出响应
总结:
不管进程如何终止,最后都会执行内核中的同一大段代码。这段代码为相应进程关闭所有打开描述符,释放它所使用的存储器等。
对上述任意一种终止情形,我们都希望终止进程能够通知其父进程它是如何终止的。对于三个终止函数(exit、
相关文章
- 08-12Electron中通过ipcMain和ipcRender实现主进程和渲染进程之间的相互通信
- 08-12C#和.NET 3.5-如何使用具有隐藏窗口的不同凭据启动进程,并能够捕获标准输出和退出代码?
- 08-12Python 多进程编程之 进程间的通信(在Pool中Queue)
- 08-12Makefile 中命令执行中的进程关系及返回值检查
- 08-12获取其他进程中ListBox和ComboBox的内容
- 08-12Windows中杀死占用某个端口的进程
- 08-12delphi中获得进程列表或想要的进程(枚举进程、遍历进程)
- 08-12SqlServer 不能收缩 ID 为 %s 的数据库中 ID 为 %s 的文件,因为它正由其他进程收缩或为空。
- 08-12操作系统中的进程同步与Window中利用内核对象进行线程同步的关系
- 08-12android – 为什么我的进程总是显示在DDMS进程列表中?