当前位置:嗨网首页>书籍在线阅读

12-终止进程的其他方式

  
选择背景色: 黄橙 洋红 淡粉 水蓝 草绿 白色 选择字体: 宋体 黑体 微软雅黑 楷体 选择字体大小: 恢复默认

5.4.1 终止进程的其他方式

终止进程的典型方式不是通过显式系统调用,而是采用“直接跳到结束(falling off the end)”的方式。在C和C++语言中,当main()函数返回时会发生这种情况。然而,这种直接跳到结束的方式还是会执行系统调用:编译器会在最后关闭代码后插入隐式exit()调用。在main()函数返回时显式给出返回状态值,或者调用exit()函数,这是一个良好的编程习惯。shell会根据这个返回值来判断命令是否成功执行。注意,成功时返回exit(0),或者是从main()函数返回0。

如果进程收到一个信号,并且这个信号对应的处理函数是终止进程,进程也会终止。这样的信号包括SIGTERM 和 SIGKILL(参考第10章)。

最后一种进程终止方式是被内核强制终止。内核可以杀死执行非法指令、引起段错误、耗尽内存、消耗资源过多的任何进程。