司机售票

来源:互联网 发布:日本视频聊天软件 编辑:程序博客网 时间:2024/06/10 08:35
#include <sys/types.h>#include <sys/stat.h>#include <fcntl.h>#include <stdlib.h>#include <string.h>#include <stdio.h>#include <signal.h>#include<unistd.h>int pid1,pid2;void initsi1(){   printf("lets gogo\n");  }void initsi2(){   printf ("stop the bus\n");  }void initsou(){   printf("please get off the bus\n");   }void intgo(){   kill(getppid(),SIGUSR1);}void intstop(){  kill(getppid(),SIGUSR2);}void intzz(){  kill(pid1,SIGUSR1);}int main (){       signal(SIGINT,SIG_IGN);    signal(SIGQUIT,SIG_IGN);     signal(SIGTSTP,SIG_IGN);  while ((pid1=fork())==-1);  if (pid1==0)  {     signal(SIGINT,intgo);   signal(SIGQUIT,intstop);   signal(SIGUSR1,initsou); while(1);  wait(NULL);  exit(0);    }  else{       signal(SIGUSR1,initsi1);    signal(SIGUSR2,initsi2);    signal(SIGTSTP,intzz);    while (1);    exit(0);          }}

#include <signal.h>#include <unistd.h>#include <stdio.h>#include <stdlib.h>int pid;void func1( int signum ){switch( signum ){case SIGINT:kill(getppid(),SIGUSR1);break;case SIGQUIT:kill(getppid(),SIGUSR2);break;case SIGUSR1:printf("please get off the bus!\n");break;default:break;}}void func2( int signum ){switch( signum ){case SIGUSR1:printf("let's gogogo!\n");break;case SIGUSR2:printf("stop the bus!\n");break;case SIGTSTP:kill(pid,SIGUSR1);break;default:break;}}int main(){signal(SIGINT,SIG_IGN);signal(SIGQUIT,SIG_IGN);signal(SIGTSTP,SIG_IGN);pid = fork();if( pid > 0 ){signal(SIGUSR1,func2);signal(SIGUSR2,func2);signal(SIGTSTP,func2);while(1);exit(0);}else if( pid == 0){signal(SIGINT,func1);signal(SIGQUIT,func1);signal(SIGUSR1,func1);while(1);exit(0);}}


原创粉丝点击