进程间通讯之信号

信号是软件中断。很多比较重要的应用程序都需要处理信号。信号提供了一种处理异步事件的方法。每个信号都有一个名字,并且他们的名字都是以SIG开头的。

信号的处理或相关动作有三种处理方式:

  1、默认信号(SIG_DFL)

2、忽略信号(SIG_IGN):大多数信号可采用,除SIGKILL和SIGSTOP外。

3、自定义信号(function):自定义信号是将原来的信号被用户通过一个自定义函数修改为用户想要执行某种功能的信号。

 

信号的使用一般通过一个signal函数来实现。它的原型为:

void (*signal(int signo, void (*func)(int)))(int);

若调用成功则返回信号以前的处理配置,若出错则返回SIG_ERR。

第一个参数为一个整数(因为信号都通过宏定义为一个整数,所以信号就是一个整数)。第二个参数为函数指针,指向一个无返回值且只有一个整形参数的函数首地址(该函数的功能主要是修改信号为用户想要实现的信号或功能,整形参数就是要被修改的信号)。下面就是实现一个信号的具体使用方法:

#include<stdio.h>

#include<stdlib.h>

#include<unistd.h>

#include<string.h>

#include<assert.h>

#include<fcntl.h>

#include<sys/types.h>

#include<signal.h>

int count = 0;

void fun(int sign)

{

count++;

if(3 == count)

{

//exit(0);

signal(SIGINT,SIG_DFL);

}

printf("hello world!\n");

}

void main()

{

signal(SIGINT,fun);

int i = 0;

for(; i < 10; i++)

{

sleep(1);

}

}

 

此段代码的功能为前三次按Ctrl+c每次都会打印一个“hello world!”,第四次再按则进程就结束了(Ctrl+c 为终止信号相当于SIGINT)。起实质就是将终止信号改变为一个打印功能,当满足一定条件后再将其改回来终止进程。

 

信号有很多,我们接触到的大约就以下信号:

SIGHUP     终止进程     终端线路挂断
SIGINT     终止进程     中断进程
SIGQUIT   建立CORE文件终止进程,并且生成core文件
SIGILL   建立CORE文件       非法指令
SIGTRAP   建立CORE文件       跟踪自陷
SIGBUS   建立CORE文件       总线错误
SIGSEGV   建立CORE文件       段非法错误
SIGFPE   建立CORE文件       浮点异常
SIGIOT   建立CORE文件       执行I/O自陷
SIGKILL   终止进程     杀死进程
SIGPIPE   终止进程     向一个没有读进程的管道写数据
SIGALARM   终止进程     计时器到时
SIGTERM   终止进程     软件终止信号
SIGSTOP   停止进程     非终端来的停止信号
SIGTSTP   停止进程     终端来的停止信号
SIGCONT   忽略信号     继续执行一个停止的进程
SIGURG   忽略信号     I/O紧急信号
SIGIO     忽略信号     描述符上可以进行I/O
SIGCHLD   忽略信号     当子进程停止或退出时通知父进程
SIGTTOU   停止进程     后台进程写终端
SIGTTIN   停止进程     后台进程读终端
SIGXGPU   终止进程     CPU时限超时
SIGXFSZ   终止进程     文件长度过长
SIGWINCH   忽略信号     窗口大小发生变化
SIGPROF   终止进程     统计分布图用计时器到时
SIGUSR1   终止进程     用户定义信号1
SIGUSR2   终止进程     用户定义信号2
SIGVTALRM 终止进程     虚拟计时器到时

【SCI一区论文复】基于SLSPC系列的高阶PT-WPT无线电能传输系统研究(Matlab代码实现)内容概要:本文围绕“基于SLSPC系列的高阶PT-WPT无线电能传输系统研究”展开,重点复现SCI一区论文中的核心技术,通过Matlab代码实现高阶无线电能传输系统的建模与仿真。研究聚焦SLSPC拓扑结构在恒压-恒流(CV/CC)输出特性方面的优势,深入分析系统的传输效率、耦合特性、频率分裂现象及参数敏感性,并探讨其在高功率、长距离无线充电场景中的应用潜力。文中详细给出了系统数学建模、参数设计、仿真验证等关键步骤,旨在帮助读者掌握先进无线电能传输技术的核心原理与实现方法。; 适合人群:具备一定电力电子、自动控制理论基础,熟悉Matlab/Simulink仿真工具,从事无线电能传输、新能源充电技术等相关领域研究的研究生、科研人员及工程技术人员。; 使用场景及目标:①深入理解SLSPC型无线电能传输系统的恒压恒流输出机理;②掌握高阶WPT系统的建模、仿真与性能分析方法;③复现SCI一区论文成果,为后续科研创新提供技术基础和代码参考;④应用于无线充电、电动汽车、植入式医疗设备等领域的系统设计与优化。; 阅读建议:建议读者结合Matlab代码逐段分析系统模型构建过程,重点关注谐振参数设计、传输特性仿真及效率优化策略,同时可拓展研究不同耦合条件下的系统行为,以深化对高阶WPT系统动态特性的理解。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值