[学习笔记]进程终止的5种方式


进程终止的5种方式

q  正常退出

q  从main函数返回

q  调用exit

q  调用_exit

q  异常退出

q  调用abort   产生SIGABOUT信号

q  由信号终止  ctrl+c SIGINT



eg:

区别1:清空缓冲区的操作

int main(void)

{

printf("hello itcast");

//return 0;

//exit(0);

fflush(stdout);

_exit(0);

}

区别2:exit会调用终止处理程序

有关终止处理程序


q  atexit可以注册终止处理程序,ANSI C规定最多可以注册32个终止处理程序。

q  终止处理程序的调用与注册次序相反

q  man atexit

int atexit(void (*function)(void));

man 2 atexit


总结exit与_exit区别

1)_exit是一个系统调用,exit是一个c库函数

2)exit会执行清楚I/O缓存

3)exit会执行调用终止处理程序

复制去Google翻译翻译结果

时间: 2024-08-03 03:38:51

[学习笔记]进程终止的5种方式的相关文章

.net学习笔记--文件读写的几种方式

在.net中有很多有用的类库来读写硬盘上的文件 一般比较常用的有: File:1.什么时候使用:当读写件大小不大,同时可以一次性进行读写操作的时候使用         2.不同的方式可以读写文件类型不一样. ReadAllBytes()  WriteAllByte():可以读写任意类型的文件 (里面封装的是FileStream)           ReadAllLines()  ReadAllText():(里面封装是StreamWriter,StreamReader),只能读写文本类型文件

ios1学习笔记-保存数据的4种方式

在iOS开发过程中,不管是做什么应用,都会碰到数据保存的问题.将数据保存到本地,能够让程序的运行更加流畅,不会出现让人厌恶的菊花形状,使得用户体验更好.下面介绍一下数据保存的方式: 1.NSKeyedArchiver:采用归档的形式来保存数据,该数据对象需要遵守NSCoding协议,并且该对象对应的类必须提供encodeWithCoder:和initWithCoder:方法.前一个方法告诉系统怎么对对象进行编码,而后一个方法则是告诉系统怎么对对象进行解码.例如对Possession对象归档保存.

python 学习笔记(二)两种方式实现第一个python程序

在交互模式下: 如果要让Python打印出指定的文字,可以用print语句,然后把希望打印的文字用单引号或者双引号括起来,但不能混用单引号和双引号: >>> print 'hello,world'hello,world在交互模式下虽然方便,但是执行一次代码无法保存,接下来我们用文本编辑器来编写并且可以保存. 打开notepad++,选好你所编辑的代码,python # hello.pyprint 'hello world' 最后文件名为hello.py,打开命令行cd到文件的保存路径接着

Linux 程序设计学习笔记----进程管理与程序开发(下)

转载请注明出处:http://blog.csdn.net/suool/article/details/38419983,谢谢! 进程管理及其控制 创建进程 fork()函数 函数说明具体参见:http://pubs.opengroup.org/onlinepubs/009695399/functions/fork.html 返回值:Upon successful completion, fork() shall return 0 to the child process and shall re

操作系统学习笔记----进程/线程模型----Coursera课程笔记

操作系统学习笔记----进程/线程模型----Coursera课程笔记 进程/线程模型 0. 概述 0.1 进程模型 多道程序设计 进程的概念.进程控制块 进程状态及转换.进程队列 进程控制----进程创建.撤销.阻塞.唤醒.... 0.2 线程模型 为什么引入线程 线程的组成 线程机制的实现 用户级线程.核心级线程.混合方式 1. 进程的基本概念 1.1 多道程序设计 允许多个程序同时进入内存运行,目的是为了提高CPU系统效率 1.2 并发环境与并发程序 并发环境: 一段时间间隔内,单处理器上

Linux 程序设计学习笔记----进程管理与程序开发(上)

转载请注明出处,http://blog.csdn.net/suool/article/details/38406211,谢谢! Linux进程存储结构和进程结构 可执行文件结构 如下图: 可以看出,此ELF可执行文件存储时(没有调入内存)分为代码区.数据区和未出花数据区三部分. 代码区:存放cpu的执行的机器指令. 数据区:包含程序中的已经初始化的静态变量,以及已经初始化的全局变量. 未初始化数据区:存入的是未初始化的全局变量和未初始化的静态变量. 现在在上面的程序代码中增加一个int的静态变量

【Spring学习笔记-MVC-4】返回Json数据-方式2

摘要 本文讲解另外一种利用spring MVC返回json数据的方法. 前文回顾 在<[Spring学习笔记-MVC-3]返回Json数据-方式1>中介绍了通过: @ResponseBody声明返回值: 配置<mvc:annotation-driven />: 来返回json数据.效果如下:   ==>, 从上面的效果看,只能返回一个对象,不能返回多个对象,不能做到形如下图的返回结果, 存在局限性(可能可以返回多个,自己不知道如何实现). 下面介绍的方式2,利用spring

9.9-全栈Java笔记:遍历集合的N种方式总结&Collections工具类

遍历集合的N种方式总结 [示例1]遍历List方法1,使用普通for循环 for(int i=0;i<list.size();i++){         //list为集合的对象名 String temp = (String)list.get(i); System.out.println(temp); } [示例2]遍历List方法2,使用增强for循环(使用泛型定义类型!) for (String   temp : list) { System.out.println(temp); } [示例

EJB学习笔记十一(EntityManager几种管理方式)

1.前言 今天来谈一下,几种管理EntityManger的方式.  2.从一个Demo说起 最近做了一个Demo,通过JBOSS数据源来管理EntityManager对象,下面为大家展示一下. 用到的工具有JBOSS5.1,mysql3.13 1.配置JBOSS数据源 可以从JBOSS的安装路径\jboss-5.0.1.GA\docs\examples\jca的安装路径中拷贝相关的数据源配置文件,其中在这个路径中有好多数据库的配置,选择Mysql.xml拷贝到\jboss-5.0.1.GA\se