// Szablon programu obslugi sygnalow (ANSI)

#include <unistd.h>
#include <signal.h>
#include <string.h>

#define	BLAD	"Blad\n"

// Procedura przechwycenia sygnalu
void Przechwycenie_Sygnalu(int sygnal)
{
   /* W niektorych systemach tutaj nalezy powtorzyc wywolanie funkcji signal */
}


int main(int arg, char **arc)
{
//	Instalowanie procedury obslugi sygnalu (SIGINT)
    if (signal(SIGINT,Przechwycenie_Sygnalu) == SIG_ERR) {	
	write(STDERR_FILENO,BLAD,strlen(BLAD));
	return(1);  }

//	Wlaczenie ignorowania sygnalu (SIGINT)
	signal(SIGINT,SIG_IGN); 

//	Wysylanie sygnalu (SIGINT do procesu macierzystego)
	kill(getppid(), SIGINT);
	
//	Dodanie sygnalu (SIGINT i SIGUSR1) do wykazy sygnalow blokowanych
	sigblock( sigmask(SIGINT | SIGUSR1));
}   


