进程的终止有8种方式,5种正常终止和3中异常终止
5种正常终止:
1:从 main 执行return返回。
2:调用 exit(int x), 程序返回码是x,调用各种中止处理程序,关闭或冲洗缓冲区。
3:调用 _exit(int) 或 _Exit(int),提供一种无须调用各种中止处理程序就能进行终止的方法。
4:最后一个线程从其启动例程返回。
5:最后一个线程调用pthread_exit。
异常终止有3种:
6:调用 abort。产生SIGABRT信号。
7:接到一个信号并终止。信号可以由进程自身(调用abort函数)、其他进程或内核产生。
8:最后一个线程对取消请求做出响应(一个线程要求取消另外一个进程)。
atexit用来登记终止处理程序,exit调用终止处理程序的顺序和它们登记时候的顺序相反。
内核使程序执行的唯一的方式是调用exec函数。
进程可以自愿的终止(调用exit/_exit/Exit),也可以非自愿的由一个信号终止。