进程退出表示进程结束运行。Linux系统中进程的退出分为正常退出和异常退出。
(1)正常退出:在main函数中执行return返回;调用exit函数;调用_exit()函数。
(2)异常退出:调用abort;进程收到某个信号,该信号使程序终止。
不管哪中方式都会执行内核中同样一段代码。这段代码用来关闭进程所有打开的文件描述符,释放它所占有的所有资源。
各种退出方式的比较:
(1)exit和return的区别:exit是一个函数;return是函数执行完的返回。exit把控制权交给系统,而return把控制权交给调用者。
(2)exit和abort的区别:exit是进程正常退出,abort是异常终止。
(3)exit(int exit_code):exit中的参数exit_code为0代表进程正常终止,若为其他值表示程序过程中有错误发生。
(4)exit和_exit()的区别:exit()在stdlib.h中声明,而_exit()在unistd.h中声明,两个函数均能正常终止进程,但_exit()执行后立即返回给内核,而exit要执行一些清楚操作,然后再把控制权交给内核。