linux 进程崩溃 wait,Linux信号机制有关问题
代码如下:
#include
#include
#include
void waiting(),stop();
int wait_mark;
main()
{
int p1,p2,stdout;
while((p1=fork())==-1); /*创建子进程p1*/
if (p1>0){
wait_mark=1;
signal(SIGINT,stop); /*接收到^c信号,转stop*/
waiting();
kill(p1,16); /*向p1发软中断信号16*/
wait(0); /*同步*/
printf("Parent process is killed!n");
exit(0);
}
else
{
wait_mark=1;
signal(16,stop); /*接收到软中断信号16,转stop*/
waiting();
lockf(stdout,1,0);
printf("Child process 1 is killed by parent!n");
lockf(stdout,0,0);
exit(0);
}
}
void waiting()
{
while(wait_mark!=0);
}
void stop()
{
wait_mark=0;
}
预期结果为:系统调用signal( )让父进程捕捉键盘上来的中断信号(即按^c键);捕捉到中断信号后,父进程用系统调用kill( )向两个子进程发出信号,子进程捕捉到信号后分别输出下列信息后终止:
Child process1 is killed by parent!
父进程等待两个子进程终止后,输出如下的信息后终止:
Parent process is killed!
但执行结果为:按^c键后,只输出了Parent process is killed!而没有子进程那句...请问是为什么呢?
|
你在子进程中加上signal(SIGINT, SIG_IGN);就可以了。
当你按Ctrl+C时子进程也收到了^C信号,子进程按照默认处理退出,收不到16信号了。所以也就打印不出来
|
顶下1楼的
linux 进程崩溃 wait,Linux信号机制有关问题相关推荐
- linux 进程崩溃log,Linux系统日志及日志分析
Linux系统拥有非常灵活和强大的日志功能,可以保存几乎所有的操作记录,并可以从中检索出我们需要的信息. 大部分Linux发行版默认的日志守护进程为 syslog,位于 /etc/syslog 或 / ...
- linux 进程崩溃log,linux调试:dmesg 查看程序崩溃原因分析方法之一
在Linux下写C/C++程序的程序员,时常与Core Dump相见.在内存越界访问,收到不能处理的信号,除零等错误出现时,我们精心或不精心写就的程序就直接一命呜呼了,Core Dump是Linux仁 ...
- linux进程管理机制,linux进程管理,linux进程管理机制
linux进程管理,linux进程管理机制 一.基本介绍 1.在 LINUX 中,每个执行的程序(代码)都称为一个进程.每一个进程都分配一个 ID 号 2.每一个进程,都会对应一个父进程,而这个父进程 ...
- linux 进程 崩溃被杀 原因查找
目录 到底是什么信号 OOM 谁发的信号 systemtap audit 案例与总结 一个进程的异常终止,通常有两种情况,一种是crash,另一种是被kill掉了. crash是指程序出现了自己无法解 ...
- linux 进程间广播,Linux系统编程之进程间通信之浅谈信号
我们接着谈Linux学习过程中一个重要的话题--信号. 一.信号的概念: 信号是一种软件中断,它提供了一种处理异步事件的方法,也是进程间唯一的异步通信方式. 二.信号的来源: 1.硬件方式: 当用户按 ...
- Linux进程崩溃排查方法
dmesg 通过该指令可以查看进程崩溃的相关信息 上图中最后两条即为进程崩溃的日志(该程序执行过两次),通过日志可以看出是在调用libfun.so时出错,在日志中给出了进程崩溃的地址,可以通过addr ...
- linux进程家族树,Linux内核 | 进程管理
作者:世至其美 博客地址:hqber.com 转载须注明以上信息, 更多文章,请访问个人博客:hqber.com 1. 进程和线程 1.1 定义 进程是处于运行状态的程序和相关资源的总称,是资源分配的 ...
- Linux进程ID号--Linux进程的管理与调度(三)
进程ID概述 进程ID类型 要想了解内核如何来组织和管理进程ID,先要知道进程ID的类型: 内核中进程ID的类型用pid_type来描述,它被定义在include/linux/pid.h中 enum ...
- linux 进程管理 ppt,Linux内核结构与进程管理.ppt
Linux内核结构与进程管理.ppt Linux 内核结构与进程管理,Linux系统结构Linux kernel 开放源代码的linux操作系统内核,目前版本为2.6,Linux内核组成1. 进程调度 ...
最新文章
- Java for LeetCode 067 Add Binary
- 反码求和校验: 一个数加上自己取反得到的数正是时钟轮盘上最大那个数
- 3.10 直观理解反向传播-深度学习-Stanford吴恩达教授
- 五、创建Bean的三种方式
- 设置三个线程顺序打印数字问题(转载)
- 引用之函数返回值 函数的返回值为引用类型《三》
- 分享一个自己写的py扫描路径工具
- 计算机二级在线练,计算机二级操作练习题.doc
- 【设计鉴赏】精选字体设计鉴赏
- KCF跟踪算法/目标跟踪算法KCF案例程序源码
- 为什么建网站需要服务器,建网站需不需要服务器
- 对SMART法则的多种解释
- 何钦铭c语言第三版第9章答案,c语言程序设计第3版何钦铭 颜 晖 第9章 结构.pdf...
- 一个大学生的心灵告白:世界上最后一封情书
- afn原理 ios_iOS AFNetworking网络框架详解
- unity3d热更新插件uLua
- 考拉海购操作教学-API接口
- python爬虫 爬取图片
- eclise导入已存在工程报 Faceted Project Problem 错误
- 计算机学生要学的基础知识,中小学生应注重学习计算机的基础知识
热门文章
- 基于mysql和php的分布式事务处理1,基于MySQL和PHP的分布式事务处理
- java obervable_RxJava中Observable,Completable和Single之间有什么区别
- SAP ABAP刷新ALV 渲染刷新 (我也不太懂,反正就这么写了)
- js判断url链接是否可访问(服务可连接,可用)
- idea中常用的快捷键以及一些奇淫技巧 , 加快我们的开发效率
- lombok之@RequiredArgsConstructor注解
- 在IDEA中右键New没有创建Mapper文件选项解决办法
- java开发利器 源码_Java开发的利器: 反编译工具 JD-GUI
- mysql索引结构优缺点_mysql索引优缺点及注意事项
- flex布局_flex布局的 flex(felx-grow、flex-shrink、flex-basis)详解