当前位置: 首页 > news >正文

Linux 进程:exit和_exit的辨析

目录

  • 1.接口与函数
  • 2.缓冲区
  • 3.exit 与 _exit
    • (1)_exit
    • (2)exit

  这里来认识exit函数_exit接口 ,它们的作用是类似的,都是在调用后退出程序,可以在程序的任何地方调用

1.接口与函数

exit函数和_exit接口,一个函数,一个接口。那么函数和接口有什么不同的吗?

  • 系统调用接口:是操作系统提供的访问内核功能的接口
  • 库函数:程序员对操作系统提供的系统调用接口的封装。(因为程序员觉得接口还不够好用,就封装了接口,使得它们更好用)

我们可以这么理解:库函数 = 接口+其他的一些东西。

2.缓冲区

  在进行exit和_exit的辨析前,需要了解一下什么是缓冲区,因为它们的不同之处就在于缓冲区。

  缓冲区:数据在写入文件前,首先会放到缓冲区中,等到缓冲区满了之后,再一次性刷新缓冲区,把缓冲区的内容写入到文件中。

  这样是为了减少IO次数,因为一次数据的写入就是一次IO操作。如果我们每次都直接把数据写入到文件,意味着每写入一次就要进行一次IO操作。但是如果将多个要写入的数据都先放到缓冲区,然后一次性将缓冲区数据写入到文件中,就相当于多条数据只进行了一次IO操作,这样无疑提升了效率。

  比如常使用的printf函数,我们每次打印的如果数据比较少,就会先存放在缓冲区,等到缓冲区的内容足够多,才会一次性打印出来。

  来看看下面两行代码,不同之处在于第二行代码后面有换行符’\n’,当添加了换行符意味着这一行代码会直接打印,而不是放到缓冲区。

printf("Hello");//数据先放在缓冲区,等到缓冲区满刷新                                                                                  
printf("Hello\n");//数据直接打印

3.exit 与 _exit

(1)_exit

void _exit(int status); 系统调用接口

  作用:在程序的任何地方都可以调用,调用后退出程序。退出前不刷新缓冲区,而是直接退出并释放资源,因此缓冲区的那些数据并不会被输出。

(2)exit

void exit(int status); 库函数

  作用:在程序的任何地方都可以调用,调用后退出程序。退出前刷新缓冲区,把缓冲区的数据都输出。

http://www.lryc.cn/news/27686.html

相关文章:

  • 智能电子标签——商超版价签
  • 计算机网络自检
  • DC真实数据都有哪些?Filecoin为DC数据存储的解决方案又是什么?
  • 解决vscode无法自动更新
  • 315线上知识竞赛答题活动方案及模板分享
  • 论文复现-2:代码部分
  • Linux开放的端口太多了?教你一招找出所有开放的端口,然后直接干掉!
  • mysql集群简介
  • 装饰器模式
  • 21 Nacos客户端本地缓存及故障转移
  • 遍历读取文件夹下的所有文件
  • nexus安装与入门
  • Flink SQL Checkpoint 学习总结
  • 2023年“楚怡杯“湖南省职业院校技能竞赛“网络安全”竞赛任务书
  • MyBatis中主键回填的两种实现方式
  • Windows11如何打开ie浏览器
  • Linux:进程间通信
  • 【java】将LAC改造成Elasticsearch分词插件
  • TPM 2.0实例探索3 —— LUKS磁盘加密(5)
  • mybatisplus复习(黑马)
  • 【数据聚类|深度聚类】Deep Comprehensive Correlation Mining for Image Clustering(DCCM)论文研读
  • CE认证机构有哪些机构?
  • MYSQL5.7:Access denied for user ‘root‘@‘localhost‘ (using password:YES)解决方法
  • 单目运算符、双目运算符、三目运算符
  • 离线数据仓库项目搭建——准备篇
  • 十七、本地方法接口的理解
  • 【halcon】模板匹配参数之金字塔级数
  • jupyter lab安装和配置
  • 用Docker搭建yolov5开发环境
  • Apache Pulsar 云原生消息中间件之王