#include <stdio.h>

#include <signal.h>

#include <sys/signal.h>

 

void usr( int sig )

{

   printf( "PID [%d] received signal %d\n", getpid(), sig );

}

 

void main( void )

{

   if( fork() == 0 )

   {

      for(;;)

      {

         sleep( 5 );

         printf( "child sending %d to pid=%d\n", SIGUSR1, getppid() );

         kill( getppid(), SIGUSR1 );

      }

   }

   else

   {

      sigset( SIGUSR1, usr );

      for(;;)

      {

         static int i = 0;

         printf( "i=%d\n", i++ );

         sleep( 1 );

      }

   }

}