*nix Documentation Project
·  Home
 +   man pages
·  Linux HOWTOs
·  FreeBSD Tips
·  *niX Forums

  man pages->IRIX man pages -> perl5/sigtrap (3)              
Title
Content
Arch
Section
 

Contents


sigtrap(3)							    sigtrap(3)


NAME    [Toc]    [Back]

     sigtrap - Perl pragma to enable simple signal handling

SYNOPSIS    [Toc]    [Back]

	 use sigtrap;
	 use sigtrap qw(stack-trace old-interface-signals);  # equivalent
	 use sigtrap qw(BUS SEGV PIPE ABRT);
	 use sigtrap qw(die INT	QUIT);
	 use sigtrap qw(die normal-signals);
	 use sigtrap qw(die untrapped normal-signals);
	 use sigtrap qw(die untrapped normal-signals
			 stack-trace any error-signals);
	 use sigtrap 'handler' => \&my_handler,	'normal-signals';
	 use sigtrap qw(handler	my_handler normal-signals
			 stack-trace error-signals);

DESCRIPTION    [Toc]    [Back]

     The sigtrap pragma	is a simple interface to installing signal handlers.
     You can have it install one of two	handlers supplied by sigtrap itself
     (one which	provides a Perl	stack trace and	one which simply die()s), or
     alternately you can supply	your own handler for it	to install.  It	can be
     told only to install a handler for	signals	which are either untrapped or
     ignored.  It has a	couple of lists	of signals to trap, plus you can
     supply your own list of signals.

     The arguments passed to the use statement which invokes sigtrap are
     processed in order.  When a signal	name or	the name of one	of sigtrap's
     signal lists is encountered a handler is immediately installed, when an
     option is encountered it affects subsequently installed handlers.

OPTIONS    [Toc]    [Back]

     SIGNAL HANDLERS

     These options affect which	handler	will be	used for subsequently
     installed signals.

     stack-trace
	 The handler used for subsequently installed signals outputs a Perl
	 stack trace to	STDERR and then	tries to dump core.  This is the
	 default signal	handler.

     die The handler used for subsequently installed signals calls die
	 (actually croak) with a message indicating which signal was caught.

     handler your-handler
	 your-handler will be used as the handler for subsequently installed
	 signals.  your-handler	can be any value which is valid	as an
	 assignment to an element of %SIG.






									Page 1






sigtrap(3)							    sigtrap(3)



     SIGNAL LISTS    [Toc]    [Back]

     sigtrap has a few built-in	lists of signals to trap.  They	are:

     normal-signals
	 These are the signals which a program might normally expect to
	 encounter and which by	default	cause it to terminate.	They are HUP,
	 INT, PIPE and TERM.

     error-signals
	 These signals usually indicate	a serious problem with the Perl
	 interpreter or	with your script.  They	are ABRT, BUS, EMT, FPE, ILL,
	 QUIT, SEGV, SYS and TRAP.

     old-interface-signals
	 These are the signals which were trapped by default by	the old
	 sigtrap interface, they are ABRT, BUS,	EMT, FPE, ILL, PIPE, QUIT,
	 SEGV, SYS, TERM, and TRAP.  If	no signals or signals lists are	passed
	 to sigtrap, this list is used.

     For each of these three lists, the	collection of signals set to be
     trapped is	checked	before trapping; if your architecture does not
     implement a particular signal, it will not	be trapped but rather silently
     ignored.

     OTHER    [Toc]    [Back]

     untrapped
	 This token tells sigtrap to install handlers only for subsequently
	 listed	signals	which aren't already trapped or	ignored.

     any This token tells sigtrap to install handlers for all subsequently
	 listed	signals.  This is the default behavior.

     signal
	 Any argument which looks like a signal	name (that is, /^[A-Z][A-Z0-
	 9]*$/)	indicates that sigtrap should install a	handler	for that name.

     number
	 Require that at least version number of sigtrap is being used.

EXAMPLES    [Toc]    [Back]

     Provide a stack trace for the old-interface-signals:

	 use sigtrap;

     Ditto:

	 use sigtrap qw(stack-trace old-interface-signals);

     Provide a stack trace on the 4 listed signals only:




									Page 2






sigtrap(3)							    sigtrap(3)



	 use sigtrap qw(BUS SEGV PIPE ABRT);

     Die on INT	or QUIT:

	 use sigtrap qw(die INT	QUIT);

     Die on HUP, INT, PIPE or TERM:

	 use sigtrap qw(die normal-signals);

     Die on HUP, INT, PIPE or TERM, except don't change	the behavior for
     signals which are already trapped or ignored:

	 use sigtrap qw(die untrapped normal-signals);

     Die on receipt one	of an of the normal-signals which is currently
     untrapped,	provide	a stack	trace on receipt of any	of the error-signals:

	 use sigtrap qw(die untrapped normal-signals
			 stack-trace any error-signals);

     Install my_handler() as the handler for the normal-signals:

	 use sigtrap 'handler',	\&my_handler, 'normal-signals';

     Install my_handler() as the handler for the normal-signals, provide a
     Perl stack	trace on receipt of one	of the error-signals:

	 use sigtrap qw(handler	my_handler normal-signals
			 stack-trace error-signals);


									PPPPaaaaggggeeee 3333
[ Back ]
 Similar pages
Name OS Title
less IRIX perl pragma to request less of something from the compiler
subs IRIX Perl pragma to predeclare sub names
constant IRIX Perl pragma to declare constants
strict IRIX Perl pragma to restrict unsafe constructs
vars IRIX Perl pragma to predeclare global variable names
ops IRIX Perl pragma to restrict unsafe operations when compiling
integer IRIX Perl pragma to compute arithmetic in integer instead of double
locale IRIX Perl pragma to use and avoid POSIX locales for built-in operations
diagnostics IRIX Perl compiler pragma to force verbose warning diagnostics splain - standalone program to do the same thing
perllocale OpenBSD Perl locale handling (internationalization and localization)
Copyright © 2004-2005 DeniX Solutions SRL
newsletter delivery service