赞
踩
异常终止:①进程收到某种信号;
②调用abort()函数;[堕胎]
正常终止:①main()函数返回
②调用exit()函数
三、调用_exit()函数或_Exit()函数
exit()函数执行时会无条件停止剩下的所有操作,清理包括PCB在内的各种数据结构,并终止本进程的运行,在执行推出之前加了若干道工序,它要检查文件的打开情况,把文件缓冲区的内容写回文件,即“清理I/O缓冲”。
_exit()函数的作用是直接使进程停止运行,清楚其使用的内存空间,并清楚其在内核中的数据结构。
程序说明:
exit1.c
/****exit1.c****/
#include<stdio.h>
#include<stdlib.h>
main(){
printf("hello\n");
printf("world\n");
exit(0);
}
exit2.c
/****ecit2.c****/
#include<stdio.h>
#include<unistd.h>
main(){
printf("hello\n");
printf("world\n");
_exit(0);
}
运行结果:
调用_exit()函数时,缓冲区的记录无法输出。
调用exit()函数时,缓冲区的记录也能正常输出。调用exit()之后,该进程并不会马上完全消失,而是留下了一个成为僵尸(Zombie)的数据结构。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。