Linux之信号处理-【代码4-5】signal.c

signal函数用于获取系统产生的各种信号,并对此信号调用用户自己定义的处理函数。函数定义如下。
【函数】signal()。
signal函数调用成功后最后返回一次定义信号的处理handler值,出错后返回SIG_ERR。
以下代码利用信号实现一个闹钟功能,即一个进程每隔一段时间向另一个进程发送闹钟信号。
#include<signal.h>
#include<stdio.h>
#include<stdlib.h>
#include<sys/types.h>
#include<unistd.h>


static int alarm_send=0;
void ding (int sig)
{
	alarm_send=1;
}

int main()
{
	pid_t pid;
	printf("alarm starting \n");


	pid = fork();
	switch(pid)

	{
		case -1:
			perror("fork failed");
			exit(1);


		case 0:
			sleep(5);

			kill(getppid(),SIGALRM);
			exit(0);
	}

	printf("Waiting for SIGALRM...\n");


	signal(SIGALRM,ding);
	pause();

	if (alarm_send)

	{
		printf("Ding!\n");
	}exit(0);

}

在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值