`
zhangyafei_kimi
  • 浏览: 265321 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

exit和_exit的区别

阅读更多
exit()在结束调用它的进程之前,要进行如下步骤:
1.cleanup();
2.在atexit()注册的函数;
最后调用_exit()函数。。。


‘exit()’与‘_exit()’有不少区别在使用‘fork()’,特别是‘vfork()’时变得很
突出。

‘exit()’与‘_exit()’的基本区别在于前一个调用实施与调用库里用户状态结构
(user-mode constructs)有关的清除工作(clean-up),而且调用用户自定义的清除程序
(译者注:自定义清除程序由atexit函数定义,可定义多次,并以倒序执行),相对
应,后一个函数只为进程实施内核清除工作。

在由‘fork()’创建的子进程分支里,正常情况下使用‘exit()’是不正确的,这是
因为使用它会导致标准输入输出(译者注:stdio: Standard Input Output)的缓冲区被
清空两次,而且临时文件被出乎意料的删除(译者注:临时文件由tmpfile函数创建
在系统临时目录下,文件名由系统随机生成)。在C++程序中情况会更糟,因为静
态目标(static objects)的析构函数(destructors)可以被错误地执行。(还有一些特殊情
况,比如守护程序,它们的*父进程*需要调用‘_exit()’而不是子进程;适用于绝
大多数情况的基本规则是,‘exit()’在每一次进入‘main’函数后只调用一次。)

在由‘vfork()’创建的子进程分支里,‘exit()’的使用将更加危险,因为它将影响
*父*进程的状态。
分享到:
评论

相关推荐

    EXIT_regular.zip_EXIT_EXIT Chart_LDPC EXIT chart_LDPC regular_ex

    regular LDPC EXIT EXIT_chart EXIT_chart_regular

    exit (2)_EXIT_exit过程_

    三、`exit`与`quit`的区别 在MATLAB中,`quit`函数与`exit`功能相似,但有一些细微差别。`quit`不接受任何参数,而且在MATLAB R2016b及以后的版本中,`quit`已被标记为废弃,推荐使用`exit`代替。 四、`onCleanup`...

    Z_FIND_USEREXIT_SAP增强查找Z_USEREXIT_

    标题中的"Z_FIND_USEREXIT_SAP增强查找Z_USEREXIT_" 提到的是一个专门用于寻找和管理SAP用户出口(User Exits)的工具。用户出口是SAP提供的一种预定义的扩展点,允许开发人员在不修改标准代码的情况下插入自定义...

    fukangwei#New_Blog_MarkDown#exit和_exit的区别1

    title: exit和_exit的区别categories: Linux系统编程exit与_exit最大的区别就在于:exit在执行之前,要清理I/O缓冲区中

    EXIT_TURBO.rar_EXIT turbo_turbo_turbo 迭代_turbo码exit_turbo迭代

    EXIT(EXIT图表,EXIT Analysis)迭代算法是分析和优化Turbo码性能的重要工具。这个“EXIT_TURBO.rar”压缩包包含了一系列与Turbo码 EXIT 图迭代相关的程序和数据文件,适合于深入理解和研究Turbo码的工作原理。 在...

    nonbinary_EXIT_NonBinary_EXIT_NonBinaryLDPC_LDPCEXIT_EXIT_非二进制ld

    非二进制EXIT图是理解非二进制LDPC码解码过程的关键工具,它描述了信道解码器和译码器之间信息交换的过程。在二进制系统中,EXIT图用于评估编码系统的潜在性能,而在非二进制系统中,这个概念同样适用,但变得更加...

    SAP userexit - save prepare 中报错解决方案

    在本案例中,具体涉及的用户退出点是"USEREXIT_CHECK_VBEP"和"USEREXIT_SAVE_DOCUMENT_PREPARE",这两个都是与销售订单处理相关的。 USEREXIT_CHECK_VBEP是在创建或更改销售订单时调用的用户退出,特别是在执行检查...

    Protograph_EXIT_chart-master_protograph_potatoesxu5_voyage1m6_ld

    在LDPC码中,EXIT图可以清晰地展示编码器和解码器之间“外信息”(extrinsic information)的交换情况,从而帮助优化码字结构和迭代次数,以达到接近香农限的解码性能。 三、“potatoesxu5”和“voyage1m6” ...

    KEY_EXIT.rar_FACLORY EXIT KEY_stm 按键

    总的来说,"KEY_EXIT.rar_FACLORY EXIT KEY_stm 按键"项目展示了如何在STM32微控制器上实现按键中断功能,这对于学习嵌入式系统开发和STM32编程是非常有价值的实践案例。通过研究和实践这个项目,开发者可以提升其在...

    详解python中 os._exit() 和 sys.exit(), exit(0)和exit(1) 的用法和区别

    详解python中 os._exit() 和 sys.exit(), exit(0)和exit(1) 的用法和区别 os._exit() 和 sys.exit() os._exit() vs sys.exit() 概述 Python的程序有两中退出方式:os._exit(), sys.exit()。本文介绍这两种方式的...

    EXIT chart.rar_Chart ldpc_LDPC_LDPC EXIT_LDPC EXIT chart_LDPC、EX

    **EXIT图表(Iterative Decoding EXIT Chart)**是评估和设计LDPC码迭代解码性能的一种强大工具。 **LDPC码的核心概念:** 1. **稀疏矩阵**:LDPC码的定义基于一个稀疏的校验矩阵,其中大部分条目为0,只有少数为1...

    Stm32Exit_stm32_EXIT_

    描述中提到的基础例程和对初学者的帮助,表明我们将探讨一个适合新手学习的STM32入门实例,尤其是关于EXIT功能的使用。 STM32的中断系统是其处理外部事件和实时响应的关键特性。在STM32中,EXIT通常不作为特定的...

    EXIT_LDPCEXIT_EXIT_LDPC_

    EXIT(Iterative Decoding EXIT Chart)分析是评估和设计LDPC码性能的重要工具。本文将深入探讨EXIT分析以及其在LDPC码中的应用。 首先,让我们理解什么是LDPC码。LDPC码是由稀疏 parity-check矩阵定义的线性分组码...

    EXIT_EXITChart_EXIT_源码.rar

    3. **用户交互**:如果"EXIT"指的是用户界面的退出操作,那么`EXIT.m`可能包含了用户输入检查和响应用户退出请求的逻辑,比如通过命令行界面或图形用户界面(GUI)的按钮。 4. **自定义退出函数**:开发者可能定义...

    module的__init__exit

    Module 的 __init__ 和 __exit 宏 在 Linux 内核中,__init__ 和 __exit__ 是两个特殊的宏,用于告诉内核在静态编译时对这些函数进行特殊处理。当内核编译成模块时,这两个宏起着关键的作用。 __init__ 宏 __init...

    C语言exit和return函数的区别

    C语言exit和return函数的区别 C语言中,exit和return函数都是结束当前进程的方式,但是它们之间有很大的区别。 Exit函数: Exit函数是一种终止当前进程的方式,exit函数的原型为`void exit(int status);`,其中...

    Exit9_task2(1).c

    Exit9_task2(1).c

    wangs.rar_exit ldpc_元胞自动机_元路径

    在本资料包“wangs.rar_exit_ldpc_元胞自动机_元路径”中,重点探讨的是元胞自动机在模拟行人流运动中的应用,以及与之相关的退出策略(exit strategy)和低密度奇偶校验码(Low-Density Parity-Check,LDPC)。...

    OpenVent_CPAP_pump_exit_open_pumpexit_

    综上,"OpenVent_CPAP_pump_exit_open_pumpexit_" 代表的是一款注重用户维护和卫生安全的开源CPAP设备,它的设计和制造考虑到了实际使用中的可操作性与可维护性,体现了现代医疗设备结合先进科技与人性化设计的理念...

Global site tag (gtag.js) - Google Analytics