#include <signal.h>
#include <stdio.h>
struct two_int { int a, b; } data;
void signal_handler(int signum){
printf ("%d, %d\n", data.a, data.b);
alarm (1);
}
int main (void){
static struct two_int zeros = { 0, 0 }, ones = { 1, 1 }, twos = {2,2};
signal (SIGALRM, signal_handler);
data = zeros;
alarm (1);
while (1)
{data = zeros; data = ones; data = twos;}
}
结果如下
# /mnt/tmp/show
1, 1
2, 2
1, 0
0, 2
2, 2
2, 2
1, 1
2, 2
0, 2
2, 2
https://blog.youkuaiyun.com/chenqi123_/article/details/79044496
本文通过C语言实现了一个简单的信号处理程序,利用SIGALRM信号每隔一秒触发一次信号处理函数,展示如何在处理函数中打印自定义结构体的成员变量,并通过alarm函数设置定时器。该程序展示了信号处理的基本用法及变量的生命周期问题。

被折叠的 条评论
为什么被折叠?



