Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
17
Добавлен:
01.05.2014
Размер:
790 б
Скачать
	#include <iostream.h>
	#include <stdio.h>
	#include <unistd.h>
	#include <signal.h>


	void callme() 

	{ 
			cout << "catch signal" << endl; 
	}



	int main() 

	{

			sigset_t  sigmask;

			struct sigaction  action, old_action;

			sigemptyset(&sigmask);

			if (sigaddset( &sigmask, SIGTERM)==-1 || 

					sigprocmask(SIG_SETMASK, &sigmask, 0)==-1)

				perror("set signal mask");

			sigemptyset(&action.sa_mask);

			sigaddset(&action.sa_mask,SIGSEGV);

#ifdef SOLARIS_25
			action.sa_handler = (void (*)(int))callme;
#else
			action.sa_handler = callme;
#endif

			action.sa_flags = 0;

			if (sigaction(SIGILL,&action,&old_action)==-1) 

				perror( "sigaction");

			pause();	/* wait for signal interruption */

			return 0;

	}
Соседние файлы в папке ch9