linux 进程编程:进程终止
来源:互联网 发布:网络培训价格是多少 编辑:程序博客网 时间:2024/06/10 19:44
今天写一下进程终止的内容,终止一个进程可以有以下方式:
正常终止
1、从main返回;
2、调用exit;
3、调用_exit或者_Exit;
4、最后一个线程从其启动例程返回;
5、从最后一个线程调用pthread_exit。
异常终止
1、调用abort;
2、接收到一个信号;
3、最后一个线程对取消信号做出反应。
我们可以注册一些函数,当进程终止时,对资源进行回收,注册函数:
int atexit(void (*func) (void));
该函数与线程中的
void pthread_cleanup_push(void (*routine) (void *), void *arg);
void pthread_cleanup_pop(int execute);
作用类似,在进程、线程终止时,会自动调用。
相关函数
#include <stdlib.h>
void exit(int status);
void _Exit(int status);
int atexit(void (*func) (void)); //注册函数.
#include <unistd.h>
void _exit(int status);
测试代码
#include <stdio.h>#include <stdlib.h>#include <unistd.h>void exit_func_1(void);void exit_func_2(void);int main(int argc, char **argv){int ret = -1;ret = atexit(exit_func_1);if(0 != ret){printf("[%s:%d] register exit func fail\n", __func__, __LINE__);}ret = atexit(exit_func_2);if(0 != ret){printf("[%s:%d] register exit func fail\n", __func__, __LINE__);}//abort();//_Exit(0);//_exit(0);//exit(0);return 0;}void exit_func_1(void){printf("[%s:%d] exit fun1 ok\n", __func__, __LINE__);}void exit_func_2(void){printf("[%s:%d] exit fun2 ok\n", __func__, __LINE__);}运行结果
[exit_func_2:38] exit fun2 ok
[exit_func_1:33] exit fun1 ok
0 0
- linux 进程编程:进程终止
- 【Linux编程】进程终止和exit函数
- Linux C编程--进程介绍3--进程终止和等待
- Linux C编程--进程介绍3--进程终止和等待
- Linux C编程--进程介绍3--进程终止和等待
- Linux终止进程
- 进程终止 linux
- linux 进程终止
- 【Linux】进程终止
- Linux终止进程方法
- Linux之进程终止
- Linux环境编程之进程(四):创建新进程、执行程序和进程终止
- linux 查看进程和终止进程
- Linux进程-进程的终止
- linux 查看进程和终止进程
- linux查看进程和终止进程 ps
- Linux进程管理之进程的终止
- linux 查看进程和终止进程
- linux下为firefox安装flash插件
- Qt中foreach的用法
- 【经典】计算字符串表示的公式的值
- unity3D android下路径加载
- 【从0到1学Web前端】CSS定位问题一(盒模型,浮动,BFC)
- linux 进程编程:进程终止
- java连接postgresql
- sublime配置C语言环境
- Linux高级编程复习 第九章 信号量同步_socket网络编程基础_TCP_UDP
- JAXBContext解析XML的常用注解
- Sublime Text 2 输入中文 (ubntu)
- Android的View类介绍-android的学习之旅(十三)
- C程序设计语言(第二版.新版)练习1-10
- Vim - OSX Yosemite下MacVim的全屏设置