Ubuntu linux下的C语言开发(信号处理)

这篇博客介绍了如何在Linux程序中使用信号处理来模拟操作系统的中断功能。通过填写信号处理函数,当进程接收到特定信号(如SIGINT)时,会执行预设的操作。在示例中,作者展示了如何编写一个简单的程序,该程序在接收到中断信号时打印消息并改变变量状态。通过在终端中运行程序并发送中断信号,可以观察到信号处理的实时响应。
摘要由CSDN通过智能技术生成

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:cxy_0809 @qq.com】

信号处理是linux程序的一个特色。用信号处理来模拟操作系统的中断功能,对于我们这些系统程序员来说是最好的一个选择了。要想使用信号处理功能,你要做的就是填写一个信号处理函数即可。一旦进程有待处理的信号处理,那么进程就会立即进行处理。#include <stdio.h>

#include <stdlib.h>
#include <signal.h>

int value = 0;

void func(int sig)
{
printf(“I get a signal!\n”);
value = 1;
}

int main()
{
signal(SIGINT, func);

while(0 == value)
    sleep(1);

return 0;

}

在这里插入图片描述

为了显示linux对signal的处理流程,我们需要进行两个步骤。第一,输入gcc sig.c -o sig, 然后输入./sig即可;第二则重启一个console窗口,输入ps -aux | grep sig, 在获取sig的pid之后然后输入kill -INT 2082, 我们即可得到如下的输出。

在这里插入图片描述

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值