信号
1:
#include<stdio.h>
#include<stdlib.h>
#include<signal.h>
void f(int reg)
{
 printf("the signal handle!\n");
}
int main()
{
 signal(SIGINT, f);//注册一个信号,接收到时进入处理函数f
 pause();
 return 0;
}
2:
#include<stdio.h>
#include<stdlib.h>
#include<signal.h>
#include<sys/types.h>
#include<sys/wait.h>
pid_t t;
void m(int reg)
{
 kill(t, SIGUSR1); //给子进程发一个信号
}
void f(int reg)
{
 printf("the signal handle!\n");
}
int main()
{
 t = fork();
 if(t == 0){//child
  signal(SIGINT, SIG_IGN);//忽略一下将会给父进程的信号,免得被挂掉了
  signal(SIGUSR1, f);//接收父进程发过来得信号,然后进入处理函数f
  pause();
  exit(0);
 }else{//parent
  signal(SIGINT, m);//注册一个信号,接收时去处理函数m
  pause();
  waitpid(t, NULL, 0);
  printf("the parent\n");
 }
 return 0;
}
 
                    
                     
                    
                 
                    
                 
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号 
