exit和_exit的区别
来源:互联网 发布:世界线收束 知乎 编辑:程序博客网 时间:2024/05/08 08:19
_exit终止调用进程,但不关闭文件,不清除输出缓存,也不调用出口函数。exit函数将终止调用进程。在退出程序之前,所有文件关闭,缓冲输出内容将刷新定义,并调用所有已刷新的“出口函数”(由atexit定义)。
‘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()’与‘_exit()’的基本区别在于前一个调用实施与调用库里用户状态结构(user-mode constructs)有关的清除工作(clean-up),而且调用用户自定义的清除程序
(译者注:自定义清除程序由atexit函数定义,可定义多次,并以倒序执行),相对应,后一个函数只为进程实施内核清除工作。
在由‘fork()’创建的子进程分支里,正常情况下使用‘exit()’是不正确的,这是因为使用它会导致标准输入输出(译者注:stdio: Standard Input Output)的缓冲区被清空两次,而且临时文件被出乎意料的删除(译者注:临时文件由tmpfile函数创建在系统临时目录下,文件名由系统随机生成)。在C++程序中情况会更糟,因为静态目标(static objects)的析构函数(destructors)可以被错误地执行。(还有一些特殊情况,比如守护程序,它们的*父进程*需要调用‘_exit()’而不是子进程;适用于绝大多数情况的基本规则是,‘exit()’在每一次进入‘main’函数后只调用一次。)
在由‘vfork()’创建的子进程分支里,‘exit()’的使用将更加危险,因为它将影响父进程的状态。
0
上一篇:linux下进度条打印
下一篇:source insight 快捷键大全
相关热门文章
- 关于__init、__initdata和__ex...
- 深层次探讨mutex与semaphore之...
- 深层次探讨mutex与semaphore之...
- 深层次探讨mutex与semaphore之...
- 深层次探讨mutex与semaphore之...
- linux 常见服务端口
- xmanager 2.0 for linux配置
- 【ROOTFS搭建】busybox的httpd...
- openwrt中luci学习笔记
- 什么是shell
- linux dhcp peizhi roc
- 关于Unix文件的软链接
- 求教这个命令什么意思,我是新...
- sed -e "/grep/d" 是什么意思...
- 谁能够帮我解决LINUX 2.6 10...
给主人留下些什么吧!~~
评论热议
0 0
- _exit和exit的区别
- _exit和exit的区别?
- _exit和exit的区别
- exit和_exit的区别
- _exit和exit的区别
- _exit和exit的区别
- _exit和exit的区别
- exit和_exit的区别
- exit()和_exit()的区别
- _exit和exit的区别
- _exit和exit的区别?
- exit()和_exit()的区别
- exit和_exit的区别
- _exit和exit的区别
- _exit和exit的区别
- _exit 和 exit的区别
- _exit( )和exit( )的区别
- exit 和_exit 的区别
- C语言中,使用结构体模拟C++类
- windows10+cuda8.0+cudnn5.1+vs2013下编译caffe
- TCP端口状态详解
- linux控制台颜色输出设计
- linux下进度条打印
- exit和_exit的区别
- source insight 快捷键大全
- 计算机中各个周期的具体含义
- MFC--工具条插入下拉框控件(利用m_comboButton)
- linux内核从启动开始到设备模型初始化完毕经历的函数
- PHP实现txt文件生成与下载
- GDB多线程调试
- linux内核符号表
- linux内核中likely和unlikely的含义
原创粉丝点击
热门IT博客
热门问题
老师的惩罚
人脸识别
我在镇武司摸鱼那些年
重生之率土为王
我在大康的咸鱼生活
盘龙之生命进化
天生仙种
凡人之先天五行
春回大明朝
姑娘不必设防,我是瞎子
吊带马甲
纤维吊带
吊带外搭
行吊吊带
钢丝吊带
同桌解我吊带胸衣突然
女邻居穿吊带来我家找我帮忙
吊带袜的图片
百元吊带穿搭
女士吊带真丝睡衣
同桌解我吊带胸衣
六年级学生吊带图片
吊带裤扣子怎么装
老师上课穿吊带袜图片
同桌解我吊带胸衣故事
蕾丝吊带袜学生图片
吊带真丝睡衣
老师蕾丝吊带袜
吊带袜新娘图
吊带背心图片
蕾丝吊带袜图片
吊带背心女款
吊带生产厂家
透明吊带文胸
女士内衣吊带
性感吊带内衣
吊带文胸一体
女士吊带背心批发
儿童吊带连衣裙
真丝睡衣吊带睡裙
情趣内衣吊带
高端女装
健身服装品牌
传统服饰
韩国服装店名大全
汗衫
短旗袍
大品牌女装
法国奢侈品牌
服装店名称
简单网