⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 signal2.c

📁 嵌入式Linux程序设计与应用案例 电子书源码 中国电力出版社
💻 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 + -