正常终止:
- 从 main 返回:当 main 函数返回时,程序正常终止。
- 调用 exit:exit 函数是用来终止进程的,它会执行一些清理工作(如关闭文件、释放内存等),然后退出程序。
- 调用 _exit 或 _Exit:_exit 和 _Exit 函数也是用来终止进程的,它们会直接退出程序,不会执行任何清理工作。
- 最后一个线程从其启动例程返回:当最后一个线程执行完其启动例程并正常返回时,整个进程也会正常终止。
- 最后一个线程调用 pthread_exit:当最后一个线程调用 pthread_exit 函数时,整个进程也会正常终止。
异常终止:
- 调用 abort:abort 函数用于异常终止进程,它会向系统发送 SIGABRT 信号,导致进程异常终止。
- 接到一个信号并终止:如果进程接到了一个未处理的信号(如 SIGSEGV、SIGFPE 等),则会导致程序异常终止。
- 最后一个线程对取消请求做出响应:当最后一个线程对取消请求做出响应时,整个进程也会异常终止。这通常是因为其他线程请求取消了该线程的执行。
注意,异常终止可能会导致一些资源无法被释放,因此程序应该尽可能避免异常终止。