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);
}
Linux之信号处理-【代码4-5】signal.c
最新推荐文章于 2023-05-10 16:24:40 发布