_exit()
_exit()
_exit()
状态机管理:销毁状态机
void
_exit(
int
status);
fork + exec = 自由执行任何程序
还差一个销毁状态机的函数就完整了
UNIX 的答案:
_exit
立即摧毁状态机,允许有一个返回值
子进程终止会通知父进程 (后续课程解释)
这个简单……
但问题来了:多线程程序怎么办?
_exit()
结束程序执行的三种方法
exit 的几种写法 (它们是
不同
)
exit(0)
会调用 atexit
_exit(0)
执行 “exit_group” 系统调用终止整个进程 (所有线程)
细心的同学已经在 strace 中发现了
会调用 atexit 吗?
syscall(SYS_exit, 0)
执行 “exit” 系统调用终止当前线程
会调用 atexit 吗?