📄 signal2.c
字号:
/*************
//name : signal2.c
//author : pyy
//date : 2007-11-22
****************/
#include<sys/types.h>
#include<signal.h>
#include<stdio.h>
#include<unistd.h>
static int alarm_flag = 0;
typedef struct student {
char name[20];
int score;
}student;
void show(student s);
/* signal function */
void set_alarm(int sig)
{
student s1;
printf("input name:");
scanf("%s",&s1.name);
printf("input score:");
scanf("%d",&s1.score);
show(s1);
alarm_flag = 1;
}
int main()
{
pid_t pid;
pid = fork(); //seting child process
switch (pid)
{
case -1 : perror("fork error"); exit(1);
case 0 : sleep(5); kill(getppid(),SIGALRM); exit(0);
}
printf(" wait for alarm signal ...\n");
(void) signal(SIGALRM,set_alarm);
pause();
if(alarm_flag)
{
printf("system receive a alarm signal\n");
}
exit(0);
}
void show(student s)
{
printf("student %s score is %d\n",s.name,s.score);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -