Linux基础 | 信号


一、信号是什么?

信号是系统响应某个条件而产生的事件,进程接收到信号会执行相应的操作。与信号有关的系统调用在“signal.h”头文件中有声明。

二、常用信号

在这里插入图片描述

二、改变信号响应方式

在这里插入图片描述
这里改变函数Linux上ctrl+c这个操作的响应

1.代码如下(示例)

在这里插入图片描述
输出:
在这里插入图片描述

2.仿写系统的kill指令

//传入参数3个 1.程序名字 2.要结束进程的pid 3.发送的信号值
int main(int argc,char*argv[])
{
	if(argc!=3)
	{
		return;
	}
	int pid=0;
	int sig=0;
	sscanf(argv[1],"%d",&pid);
	sscanf(argv[2],"%d",&sig);
	if(kill(pid,sig)==-1)//失败返回-1,成功返回0;
	{
		perror("kill err\n");
	}
	exit(0);
}

输出:
在这里插入图片描述
在这里插入图片描述

总结

以上就是对信号的简单记录。其中-9信号不能被自定义和忽略。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值