int status = 0;
void catch_Signal(int Sign)
{
` switch (Sign)
{
case SIGINT:
if (status == 0)
status = 1;
else
status = 0;
break;
}
}
int singnal1(int signo, void (*func)(int))
{
struct sigaction act, oact;
act.sa_handler = func;
sigemptyset(&act.sa_mask);
act.sa_flags = 0;
return sigaction(signo, &act, &oact);
}
int main(void)
{
singnal1(SIGINT, catch_Signal);
while (1)
{
if (status)
{
printf("hello\n");
}
sleep(1);
}
return EXIT_SUCCESS;
}
int main(int arg, char *args[])
{
if (arg < 2)
{
return 0;
}
else
{
int pid = atoi(args[1]);
kill(pid, SIGINT);
}
return EXIT_SUCCESS;
}
本文介绍了一个使用C语言实现的简单信号处理程序。该程序通过捕捉SIGINT信号来改变进程状态,并利用另一个辅助程序发送信号以展示进程状态的变化。文章包含两个主要函数:catch_Signal用于处理接收到的信号,singnal1则用于设置信号处理器。
775

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



