NAME
POSIX::SigAction - represent a struct sigaction
SYNOPSIS
$sigset = POSIX::SigSet->new(SIGINT, SIGQUIT);
$sigaction = POSIX::SigAction
->new(\&handler, $sigset, SA_NOCLDSTOP);
$sigset = $sigaction->mask;
$sigaction->flags(SA_RESTART);
$sigaction->safe(1);
DESCRIPTION
The POSIX::SigAction
object corresponds to the C struct sigaction
, defined by signal.h
.
This module is a bit tricky: POSIX.pm contains the same code for the POSIX::SigAction
namespace. However, we do not need POSIX.pm but only the POSIX.xs component which has the namespace hard-coded.
METHODS
Constructors
- POSIX::SigAction->new( $handler, [$sigset, [$flags]] )
-
The first parameter is the handler, a code reference. The second parameter is a POSIX::SigSet object, it defaults to the empty set. The third parameter contains the
sa_flags
, it defaults to 0.This object will be destroyed automatically when it is no longer needed.
Accessors
- $obj->flags()
-
Accessor functions to get/set the values of a SigAction object.
- $obj->handler()
- $obj->mask()
- $obj->safe()
-
Accessor function for the "safe signals" flag of a SigAction object; see perlipc for general information on safe (a.k.a. "deferred") signals. If you wish to handle a signal safely, use this accessor to set the "safe" flag in the
POSIX::SigAction
object:$sigaction->safe(1);
You may also examine the "safe" flag on the output action object which is filled in when given as the third parameter to POSIX::1003::Signals::sigaction():
sigaction(SIGINT, $new_action, $old_action); if ($old_action->safe) { # previous SIGINT handler used safe signals }
SEE ALSO
This module is part of POSIX-1003 distribution version 1.00, built on May 05, 2020. Website: http://perl.overmeer.net/CPAN. The code is based on POSIX, which is released with Perl itself. See also POSIX::Util for additional functionality.
COPYRIGHTS
Copyrights 2011-2020 on the perl code and the related documentation by [Mark Overmeer]. For other contributors see ChangeLog.
This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. See http://dev.perl.org/licenses/