您的位置:首页 > 运维架构 > Linux

【Linux基础】exit和_exit函数说明

2013-06-15 14:02 176 查看
[align=left]在系统中有大量的进程时,有可能会让系统资源消耗殆尽。因此,要在用完进程后终止进程。Linux用到的函数为exit和_exit函数。当程序执行exit和_exit时,进程会条件地停止所有操作,终止本进程的运行。这两个数的区别如图 7‑2所示:[/align]
[align=left][/align]



01.jpg (12.66 KB, 下载次数: 0)

下载附件
保存到相册
设为封面

2013-6-6 10:55 上传

[align=left]从图中可以看出,_exit函数的作用是:直接使进程停止运行,清除其使用内存空间,并清除其在内核中的各种数据结构;exit函数则在这些基础上作了一些动作,在执行退出之前加了若干道工序。Exit函数和 _exit函数最大的区别就在于exit函数在调用exit系统调用前要检查文件的打开情况,把文件缓冲区中的内容写回文件。就是图中的“清理I/0缓冲”。[/align]
2.
exit和_exit函数语法





[b]02.jpg
(45.14 KB, 下载次数: 0)

下载附件
保存到相册
设为封面

2013-6-6 10:56 上传

[/b]

[align=left]3. exit和_exit函数实例[/align]
[align=left]print函数使用的是缓冲I/0方式,该函数在遇到“\n”换行符时自动从缓冲区中将记录读出。以下实例就是利用此性质来进行比较。[/align]
[align=left]/*exit.c*/[/align]
[align=left]#include<stdio.h>[/align]
[align=left]#include<stdlib.h>[/align]
[align=left]#include<unistd.h>[/align]
[align=left]#include<sys/types.h>[/align]
[align=left]int main()[/align]
[align=left]{[/align]
[align=left]pid_t result;[/align]
[align=left]result=fork();[/align]
[align=left]if(result==1)[/align]
[align=left][/align]
[align=left]{[/align]
[align=left]perror("fork fail");[/align]
[align=left]exit(0);[/align]
[align=left]}[/align]
[align=left][/align]
[align=left]else if(result==0)[/align]
[align=left]{[/align]
[align=left]printf("testing _exit()\n");[/align]
[align=left]printf("this is the content in buffer");[/align]
[align=left]_exit(0);[/align]
[align=left]}[/align]
[align=left][/align]
[align=left]else[/align]
[align=left]{[/align]
[align=left]printf("testing exit()\n");[/align]
[align=left]printf("this is the content in buffer");[/align]
[align=left]exit(0);[/align]
[align=left]}[/align]
[align=left][/align]
[align=left]}[/align]
[align=left]运行结果为:[/align]
[align=left][root@localhost exit]#./exit[/align]
[align=left]testing _exit()[/align]
[align=left]testing exit()[/align]
[align=left]this is the content in buffer[/align]
[align=left]从实例结果来看,exit函数前的字符串输出了两句,_exit()函数前的字符串输出一句。这也说明调用exit函数时,缓冲区的记录能正常输出;而调用_exit函数时,缓冲区中的记录无法输出。[/align]
[align=left][/align]
[align=left][/align]
本文转载于唯C教育,【Linux基础】exit和_exit函数说明

http://www.weicedu.com/forum.php?mod=viewthread&tid=113&fromuid=4

(出处: http://www.weicedu.com/)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: