exit和_exit函数都是用来终止进程的,当执行exit()和_exit()时,进程会无条件的停止剩下的所有操作,清除各种数据结构,并终止本进程的运行。但是,这两个函数还是有区别的。

_exit()函数的作用是,直接使进程停止运行,清除其使用的内存,并清除其内核中的各种数据结构;exit()函数则在这些基础上做了一些包装,在执行退出之前加了若干道工序。exit和_exit函数最大的区别是exit()在终止当前进程之前要检查该进程打开过哪些文件,把文件缓冲区中的内容写回文件,就是清除IO缓冲。

由于在Linux的标准函数库中,有一种被称作"缓冲IO"操作,其特征就是对应每一个打开的文件,在内存中都有一片缓冲区。

每次读文件时,会连续读出若干条记录,这样在下次读文件时就可以直接从内存的缓存区中读取,同样,每次写文件的时候,也仅仅是写入内存中的缓冲区,等满足了一定的条件(如达到了一定数量或遇到特定字符等),再将缓冲区中的内容一次性写入文件。

这种技术大大的增加了文件读写速度,但也为编程带来了一些麻烦。比如有些数据,认为已经被写入到文件,实际上因为没有满足特定的条件,他们还只是被保存在缓冲区内,这时用_exit()函数直接将进程关闭掉,缓冲区的数据就会丢失。因此,若要保证数据的完整性,最好使用exit()函数或者在之前使用fflush(fd)来刷新IO(Linux中)。

另外exit(1) 相当与return 1;

exit和_exit相关推荐

  1. Linux环境编程--linux中的perror、exit、_exit、wait 和 waitpid

    perror: #include<stdio.h>        #include<stdlib.h> 定义函数 void perror(const char *s);  pe ...

  2. exit()与_exit()的区别(转)

    http://blog.csdn.net/lwj103862095/article/details/8640037 从图中可以看出,_exit 函数的作用是:直接使进程停止运行,清除其使用的内存空间, ...

  3. linux中exit()和 _exit()说明

        exit和_exit函数都是用来终止进程的.当程序执行到exit或_exit时,系统无条件的停止剩下所有操作,清除包括PCB在内的各种数据结构,并终止本进程的运行.但是,这两个函数是有区别的. ...

  4. linux中进程退出函数:exit()和_exit()的区别

    linux中进程退出函数:exit()和_exit()的区别 (1)_exit()执行后立即返回给内核,而exit()要先执行一些清除操作,然后将控制权交给内核. (2)调用_exit函数时,其会关闭 ...

  5. exit()和_exit()函数

    进程就好比人一样有其生命,我们通过fork()函数来创建一个进程,那么我们又是如何来中止进程呢. 进程退出 1.在Linux中任何让一个进程退出 进程退出表示进程即将结束.在Linux中进程退出分为了 ...

  6. exit()与_exit()的区别

    直接看图更明白: 从图中可以看出,_exit 函数的作用是:直接使进程停止运行,清除其使用的内存空间,并清除其在内核的各种数据结构:exit 函数则在这些基础上做了一些小动作,在执行退出之前还加了若干 ...

  7. exit()、_Exit() 和 _exit() 函数的区别和联系

    一.来源不同 1.头文件 #include <stdlib.h>void exit(int status); void _exit(int status); #incldue <un ...

  8. exit()与_exit()函数的区别

    注:exit()就是退出,传入的参数是程序退出时的状态码,0表示正常退出,其他表示非正常退出,一般都用-1或者1,标准C里有EXIT_SUCCESS和EXIT_FAILURE两个宏,用exit(EXI ...

  9. Linux中exit与_exit的区别

    在exit,_exit的区别 - exit()与_exit()函数的区别(Linux系统中)2012-03-20 15:19:53 分类: LINUX 注:exit()就是退出,传入的参数是程序退出时 ...

  10. exit与_exit函fork与vfork函数

    #include <stdlib.h> void exit(int status); #include <unistd.h> void _exit(int status); e ...

最新文章

  1. 成员变量和成员函数分开存储
  2. 三周第五次课(4月10日)
  3. Win32 鼠标绘图代码研究
  4. WebService事务处理
  5. 不能忽视 php warning
  6. Goodfellow说,聊失败才不是在秀优越...
  7. 15款优雅的 WordPress 电子商务网站主题
  8. caffe中 softmax 函数的前向传播和反向传播
  9. Reverse Linked List 反转链表
  10. java完全自学手册txt下载
  11. sqk,按分钟统计平均值
  12. 笔顺演示动画gif_如何将动画GIF插入PowerPoint演示文稿
  13. 2021年高压电工考试及高压电工考试题
  14. 设计模式七大原则之合成/聚合复用原则(CARP)
  15. VScode 完整安装、配置及完全卸载
  16. Python实战:淘宝自动抢购
  17. Wav音频文件剪切指定片段(限PCM格式)
  18. 安装RHEL7.5超详细教程
  19. 一年白干!程序员赵某仿制老东家APP,获取服务器数据,被判4年6个月
  20. 跟谁学计算机老师,跟谁学

热门文章

  1. 内外网同时访问路由配置(WIN11)
  2. 基于JAVAEE的网络电子相册管理系统的设计与实现
  3. 产品分析时的自攻螺丝注意事项:主要对应塑胶件上面的自攻螺丝
  4. JobControl的使用及获取计数器
  5. c语言链表中何时用点何时用箭头,链表基本操作及其过程详细叙述
  6. 一物一码防窜货系统有什么作用
  7. android数据库升级兼容老版本吗,成功升级后Android升级数据库不更新数据库版本...
  8. 产品经理35岁以后如何发展?考PMP有用吗?
  9. 合规数——合规监管大数据产品 以法律为依据,以数据为准绳
  10. HIT软件构造lab2报告