【Linux基础】exit和_exit函数说明
2013-06-15 14:02
288 查看
[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] |
http://www.weicedu.com/forum.php?mod=viewthread&tid=113&fromuid=4
(出处: http://www.weicedu.com/)
相关文章推荐
- Linux多任务编程(四)---exit()函数及其基础实验
- Linux多任务编程(四)---exit()函数及其基础实验
- Linux下Exit和_exit函数说明
- 【Linux基础】面向连接的套接字通信(TCP)之函数说明
- Linux多任务编程(四)---exit()函数及其基础实验
- Linux "零拷贝" sendfile函数中文说明及实际操作分析
- Linux "零拷贝" sendfile函数中文说明及实际操作分析
- Linux系统函数read说明
- LInux文件基础知识和文件目录操作(系统调用函数方式)
- Linux进程学习之exit()和_exit()函数
- Linux下 fcntl 函数用法说明
- 一些linux下的函数说明
- perl函数说明(exit)
- Linux下 fcntl 函数用法说明
- Linux线程基础函数
- linux getopt()函数使用说明
- Linux 字符设备驱动开发基础(三)—— read()、write() 相关函数解析
- on_exit()函数使用说明
- Linux 字符设备驱动开发基础(五)—— ioremap() 函数解析
- access()函数 linux 使用说明