必威体育Betway必威体育官网
当前位置:首页 > IT技术

exit()和_exit()的区别

时间:2019-10-28 22:15:27来源:IT技术作者:seo实验室小编阅读:73次「手机版」
 

exit函数

1._exit()执行后会立即返回给内核,而exit()要先执行一些清除操作,然后将控制权交给内核。

2.调用_exit()函数时,其会关闭进程所有的文件描述符,清理内存,以及其他一些内核清理函数,但不会刷新流(stdin 、stdout、stderr……)。exit()函数是在_exit()函数上的一个封装,它会调用_exit,并在调用之前先刷新流。

3.exit()函数与_exit()函数最大的区别就在于,exit()函数在调用exit系统之前要检查文件的打开情况,把文件缓冲区的内容写回文件。

注:由于linux的标准函数库中,有一种操作称作“缓冲I/O”的操作,其特征就是对应每一个打开的文件,在内存中都有一片缓冲区。在每次读文件时,会连续地读出若干条记录,这样在下次读文件时就可以直接从内存的缓冲区读取;同样,在每次写文件时也仅仅是写入内存的缓冲区,等满足了一定的条件(如达到了一定数量或遇到特定字符等),再将缓冲区中的内容的内容一次性写入文件。这种技术大大提高了文件读写的速度,但也给编程带来了一点麻烦。例如,有一些数据,认为已经写入了文件,实际上因为没有满足特定的条件,它们只是保存在缓冲区内,这时用_exit()函数直接将进程关闭,缓冲区的数据将丢失。因此,要想保证数据的完整性,就一定要使用exit()函数。      

文章最后发布于: 2018-01-30 16:51:17

相关阅读

网桥和路由器的区别

网桥和路由器的区别主要体现在: 1. 网桥只能连接两个逻辑相同的网络(它相当于一个二层交换机),而路由器可以连接不同网络;     网桥

(void)0和0的区别及用法

https://www.cnblogs.com/litifeng/p/7753933.html

notify()和notifyAll()的区别

1、notify()只能唤醒一个wait()线程,然而notifyAll()可以唤醒多个wait()线程; 2、两个都必须在synchronized中使用,过程不释放锁; 3、

秒懂JSONArray和JSONObject的区别和使用

一.JSONObject是什么?就是对象json;之前在秒懂json中说过,{}表示对象,所以JSONObject就是:{"name":"tom"}同时,这里的对象Json通

耳塞式耳机和入耳式耳机区别对比介绍

市面上有各种各样的耳机,种类以及设计都不同,而最常用的耳机还是要数耳塞式耳机和入耳式耳机了。这两种耳机有什么区别呢?想了解的朋

分享到:

栏目导航

推荐阅读

热门阅读