进程终止:①异常终止;②正常终止

异常终止:①进程收到某种信号;

②调用abort()函数;[堕胎]

正常终止:①main()函数返回

②调用exit()函数

三、调用_exit()函数或_Exit()函数

exit()函数执行时会无条件停止剩下的所有操作,清理包括PCB在内的各种数据结构,并终止本进程的运行,在执行推出之前加了若干道工序,它要检查文件的打开情况,把文件缓冲区的内容写回文件,即“清理I/O缓冲”。

_exit()函数的作用是直接使进程停止运行,清楚其使用的内存空间,并清楚其在内核中的数据结构。

程序说明:

exit1.c

/****exit1.c****/
#include<stdio.h>
#include<stdlib.h>
main(){
printf("hello\n");
printf("world\n");
exit(0);
}

exit2.c

/****ecit2.c****/
#include<stdio.h>
#include<unistd.h>
main(){
printf("hello\n");
printf("world\n");
_exit(0);
}

运行结果:

调用_exit()函数时,缓冲区的记录无法输出。

调用exit()函数时,缓冲区的记录也能正常输出。调用exit()之后,该进程并不会马上完全消失,而是留下了一个成为僵尸(Zombie)的数据结构。

进程的退出--exit()与_exit()的区别的更多相关文章

  1. 进程退出exit、_exit、abort

    分为正常退出,异常退出 正常退出的方法: 1.在main函数中执行return 2.调用exit函数 3.调用_exit  函数 ----------------------------------- ...

  2. exit和_exit的区别

    参考 http://www.cnblogs.com/hnrainll/archive/2011/08/17/2142001.html p.p1 { margin: 0.0px 0.0px 0.0px ...

  3. linux系统编程之进程(四):进程退出exit,_exit区别即atexit函数(转载)

    一,进程终止有5种方式: 正常退出: 从main函数返回 调用exit 调用_exit 异常退出: 调用abort 由信号终止 二,exit和_exit区别: 关于_exit(): #include ...

  4. Linux中exit与_exit的区别

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

  5. 转:exit()与_exit()的区别

    版权声明:本文为博主原创文章,未经博主允许不得转载. 从图中可以看出,_exit 函数的作用是:直接使进程停止运行,清除其使用的内存空间,并清除其在内核的各种数据结构:exit 函数则在这些基础上做了 ...

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

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

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

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

  8. linux exit 和 _exit的区别

    今天仔细看了一下exit和_exit这两个函数的区别,实际上exit也是调用了_exit退出函数的,只不过在调用_exit之前,exit还进行了一些多余的工作,也正是因为这样,相比起来exit就没有那 ...

  9. exit()和_exit()的区别

    版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/HAHAandHEHE/article/de ...

  10. exit()和_exit()函数

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

随机推荐

  1. Flink Maven项目,依赖配置pom.xml

    <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://mave ...

  2. NLLB 与 ChatGPT 双向优化:探索翻译模型与语言模型在小语种应用的融合策略

    作者:来自 vivo 互联网算法团队- Huang Minghui 本文探讨了 NLLB 翻译模型与 ChatGPT 在小语种应用中的双向优化策略.首先介绍了 NLLB-200 的背景.数据.分词器和 ...

  3. 分享一个 Windows 下的透明锁屏工具【开源】

    透明锁屏 担心展示内容时被误操作打断? 害怕离开后忘记锁屏导致隐私泄露? 厌倦了千篇一律的系统锁屏界面? 透明锁屏 了解一下. 功能特点 告别误操作:锁屏状态下,屏幕内容依然可见,视频播放.PPT 演 ...

  4. autMan奥特曼机器人-autMan的PHP环境

    直装版请自行安装php环境. docker版本预置了php环境,如下图: 如果使用插件"test php"测试环境时,实时日志有报错如下: 可进入终端,输入两条命令 apk add ...

  5. autMan奥特曼机器人-相关命令

    <link rel="stylesheet" href="https://csdnimg.cn/release/blogv2/dist/mdeditor/css/e ...

  6. Lobe Chat 数据库版安装和使用教程

    DeepSeek 爆火之后官方网站一直繁忙,不少开发者都开始自己动手部署聊天客户端了. 市面上可供选择的套壳 UI 很多,但是论颜值和功能,还得是 Lobe Chat. Lobe Chat 是什么? ...

  7. 大数据之路Week08_day02 (Flume 三个组件Source, channel, sink)

    在使用之前,先介绍组件Flume的特点和一些组件 Flume的优势: 1. Flume可以将应用产生的数据存储到任何集中存储器中,比如HDFS,HBase 2. 当收集数据的速度超过将写入数据的时候, ...

  8. PanWeiDB2.0异构数据库访问测试

    PanWeiDB2.0异构数据库访问测试 异构数据库访问兼容性测试一览表 No 访问路径 多维度结果 备注 1 PanWeiDB(集中式)-访问-PanWeiDB(集中式) √ 支持复杂SQL 2 P ...

  9. Anaconda使用记录

    1 安装 windows下,安装完添加环境变量(哦安装时勾选添加环境变量选项就是加这些变量的) ## (记anaconda软件目录为%ANACONDA3%) %ANACONDA3%\ %ANACOND ...

  10. [tldr] 配置windows terminal使用git bash

    windows terminal默认使用power shell作为shell,但是power shell不好用,还是习惯linux的命令行行为. 参考Windows Terminal 配置 Git B ...