信号综合编程代码-提高版实现

本文探讨了信号处理编程,通过创建子进程和父进程,注册不同类型的信号(如SIGINT, SIGRTMIN, SIGUSR1),并观察它们在阻塞和解除阻塞状态下的行为差异,尤其是实时信号与非实时信号的区别。" 89052745,7747328,使用Servlet实现用户登录注册,"['JavaWeb', 'Servlet', '用户认证', '用户管理']
摘要由CSDN通过智能技术生成

可靠信号、不可靠信号的观察案例:
1、创建子进程和父进程
2、注册SIGINT非实时信号 SIGRTMIN实时信号 添加到进程阻塞中
3、注册用户自定义信号SIGUSR1
4、子进程发送3次非实时信号,发3次实时信号
5、子进程发送SIGUSR1解除信号阻塞
6、观察实时信号和非实时信号的表现与区别
 

#include<sys/wait.h>
#include<sys/types.h>
#include<fcnt1.h>

#include<stdlib.h>
#include<stdio.h>
#include<errno.h>
#include<string.h>
#include<signal.h>

#define ERR_EXIT(m)
    do
    {
        perror(m);
        exit(EXIT_FAILURE);
    }while(0)


void myhandle(int num, siginfo_t *info, void *p) //实现数据接收
{
    
    if(num == SIGUSR1)
    {
    	// 把 SIGINT 和  SIGRTMIN均添加到本进程的解除阻塞状态字中 
		sigset_t bset;
		sigemptyset(&bset);
		sigaddset(&bset, SIGINT); 
		sigaddset(&bset, SIGRTMIN);
	    sigprocmask(SIG_UNBLOCK, &bset, NULL);
	    printf("解除阻塞recv sig num: %d \n", num);
	}
	else if(num == SIGINT || num ==SIGRTMIN) 
	{
		printf("recv sig num:
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值