有8种方式使进程终止。其中5种为正常终止,他们是:
- 从main返回;
- 调用exit;
- 调用_exit或_Exit;
- 最后一个线程从其启动例程返回;
- 从最后一个线程调用pthread_exit。
异常终止有3种方式,它们是:
- 调用abort();
- 接到一个信号;
- 最后一个线程取消请求作出响应。
1.退出函数
3个函数用于正常终止一个程序:_exit和_Exit立即进入内核,exit则先执行一些清理处理,然后返回内核。
#include <stdlib.h>
void exit(int status);
void _Exit(int status);
#include <unistd.h>
void _exit(int status);
2. 函数atexit
按照ISOC的规定,一个进程可以登记多至32个函数,这些函数将由exit函数自动调用。
#include <stdlib.h>
int atexit(void (*func)(void));
注意,内核使程序执行的唯一方法是调用一个exec函数。