进程终⽌的⽅式有8种,前5种为正常终⽌,后三种为异常终⽌:

1、 从main函数返回;

2 、调⽤exit函数;
3 、调⽤_exit或_Exit;
4 、最后⼀个线程从启动例程返回;
5 、最后⼀个线程调⽤pthread_exit;
6 、调⽤abort函数;
7 、接到⼀个信号并终⽌;
8 、最后⼀个线程对取消请求做出响应。

atexit() 函数:注册终止函数 即main执行结束后调用的函数。
它的原型是一个返回值为空,参数为返回值为空的函数指针,void atexit(void (*func)(void))。

使用时所需头部:#include<stdlib.h>

atexit()函数调用的特点:
1)、exit调用注册函数的顺序与他们登记时的顺序恰恰相反,如:登记时函数的顺序为A,B,C,D,E,F,那么exit调用它们的顺序即为F,E,D,C,B,A;

2)、同一个函数若被登记多次,则也会被调用多次。

进程终止:

1)从main函数中返回:

在语句"return 0;"后添加一句输出语句,通过编译运行后,可以发现return语句后的输出语句并没有调用,表示该进程已经终止,不再继续执行。

2)调用exit函数终止进程:

结果同return结果一致,在调用exit函数后,终止进程,不再继续执行程序。

3)调用_exit或Exit终止进程:

Linux - atexit()(注册终止)函数的更多相关文章

  1. atexit注册的函数是在main函数之后执行?

    跟atexit函数相识已久,man手册里对atexit的解释是这么一段: The atexit() function registers the given function to be called ...

  2. 终止函数 atexit()

    函数名: atexit   头文件:#include<stdlib.h>   功 能: 注册终止函数(即main执行结束后调用的函数)   用 法: int atexit(void (*f ...

  3. Linux 多线程环境下 进程线程终止函数小结(转)

    pthread_kill: pthread_kill与kill有区别,是向线程发送signal.,大部分signal的默认动作是终止进程的运行,所以,我们才要用signal()去抓信号并加上处理函数. ...

  4. C语言中的程序终止函数

    在C语言的标准库<stdlib.h>中提供了一些与正常或者不正常的程序终止有关的函数,下面分别对其进行简单介绍. 参考文献: [1] C和指针,P298,342 [2] C程序设计语言现代 ...

  5. Linux GPIO 注册和应用

    Linux GPIO 注册和应用 Linux Kernel, GPIO, ARM 于Linux kernel代码.经常使用 GPIO 作为一个特殊的信号,如芯片片选信号. GPIO 功能应用,我们经常 ...

  6. Linux下进程终止过程

    不管是在什么系统中,当进程终止之后.系统都须要释放进程占有的资源. 否则.系统资源会被耗尽. 以下将具体说明Linux系统中,进程终止的过程. 进程终止方式 linux的进程终止方式有8种,当中5种是 ...

  7. Linux学习之“exit函数”

    先看下"_exit"和"exit": exit被调用时,将冲刷所有的标准I/O流,关闭所有打开的文件描述符.在传统实现中,同时也将关闭标准I/O流.即表示标准输 ...

  8. linux根据进程名终止进程

    2017年09月25日 19:44:32 aladdin_sun 阅读数 5235   linux根据进程名终止进程 实验环境 操作系统:CentOS Linux release 7.3.1611 ( ...

  9. Linux C--信号 sigaction函数

    使用 sigaction 函数: signal 函数的使用方法简单,但并不属于 POSIX 标准,在各类 UNIX 平台上的实现不尽相同,因此其用途受 到了一定的限制.而 POSIX 标准定义的信号处 ...

随机推荐

  1. poj 2229 DP

    Sumsets Time Limit: 2000MS   Memory Limit: 200000K Total Submissions: 15326   Accepted: 6088 Descrip ...

  2. Java面试14|Session与Cookie

    1.在分布式环境,管理Session通常使用下面三种方式: (1)Session Replication 方式管理 (即session复制) 将一台机器上的Session数据广播复制到集群中其余机器上 ...

  3. Palindrome Linked List leetcode

    Given a singly linked list, determine if it is a palindrome. Follow up:Could you do it in O(n) time ...

  4. wemall app商城源码Fragment中监听onKey事件

    wemall-mobile是基于WeMall的android app商城,只需要在原商城目录下上传接口文件即可完成服务端的配置,客户端可定制修改.本文分享android开发Fragment中监听onK ...

  5. 2761: [JLOI2011]不重复数字(哈希表)

    2761: [JLOI2011]不重复数字 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 1770  Solved: 675[Submit][Stat ...

  6. 谷歌(Google Chrome)插件安装

    chrome应用商店打不开,安装插件的另一种方式 接下来以JsonView为例讲解安装步骤: 1.打开GitHub: https://github.com 2.搜索jsonview 3.选择需要的插件 ...

  7. 会话控制之session和cookie(20161107)

    注:除了登录页面,每个页面,包括处理页面也要加,为了提高安全性 session尽量不用,因为很占内存 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML ...

  8. java中有符号和无符号数据类型发生转换

    package com.itheima.test01;/* * byte short int long float double 是有符号位的数 * char boolean 是无符号位的数 * 补码 ...

  9. 【PHP实现】高效使用印象笔记之命令行快速保存

    一.功能 脑袋中冒出一个想法时,命令行(Terminal)中输入一条命令快速保存到Evernote. 注:这里适用于保存简短的内容 不喜欢听絮叨的,直接文末找Github地址吧. 二.想法来源 一直使 ...

  10. 遍历Arraylist的方法

    package com.test; import java.util.ArrayList; import java.util.Iterator; import java.util.List; publ ...