IPB
>  Man Pages > Unix > Solaris 10 11/06 > Section 2 > sigaltstack man page

sigaltstack man page

Section 2 - Solaris 10 11/06 Man Pages

Other operating system man pages available here


Advanced Search

Hopefully, this page is exactly what you are looking for, but if not, you can always find further assistance on Unix/Linux Forum!





System Calls                                       sigaltstack(2)



NAME
     sigaltstack - set or get signal alternate stack context

SYNOPSIS
     #include <signal.h>

     int sigaltstack(const stack_t *restrict  ss,  stack_t  *res-
     trict oss);

DESCRIPTION
     The sigaltstack() function allows a  thread  to  define  and
     examine  the  state of an alternate stack area on which sig-
     nals are processed.  If  ss  is  non-zero,  it  specifies  a
     pointer  to and the size of a stack area on which to deliver
     signals, and  informs  the  system  whether  the  thread  is
     currently  executing  on that stack.  When a signal's action
     indicates its handler should  execute on the alternate  sig-
     nal  stack  (specified with a sigaction(2) call), the system
     checks whether the  thread  chosen  to  execute  the  signal
     handler  is currently executing on that stack. If the thread
     is not currently executing on the signal stack,  the  system
     arranges  a  switch  to  the  alternate signal stack for the
     duration of the signal handler's execution.

     The  stack_t structure includes the following members:

     int   *ss_sp
     long  ss_size
     int   ss_flags


     If ss is not NULL, it points to a structure  specifying  the
     alternate signal stack that will take effect upon successful
     return from sigaltstack(). The  ss_sp  and  ss_size  members
     specify  the  new  base  and  size  of  the  stack, which is
     automatically adjusted for direction of  growth  and  align-
     ment.   The  ss_flags  member  specifies the new stack state
     and may be set to the following:

     SS_DISABLE      The stack is to be disabled  and  ss_sp  and
                     ss_size  are  ignored.  If SS_DISABLE is not
                     set, the stack will be enabled.



     If oss is not NULL, it points to a structure specifying  the
     alternate  signal stack that was in effect prior to the call
     to sigaltstack(). The ss_sp and ss_size members specify  the
     base  and size of that stack.  The ss_flags member specifies
     the stack's state, and may contain the following values:





SunOS 5.10           Last change: 1 Nov 2003                    1






System Calls                                       sigaltstack(2)



     SS_ONSTACK      The thread is  currently  executing  on  the
                     alternate  signal  stack. Attempts to modify
                     the alternate signal stack while the  thread
                     is executing on it will fail.



     SS_DISABLE      The alternate signal stack is currently dis-
                     abled.



RETURN VALUES
     Upon successful completion, 0 is return.  Otherwise,  -1  is
     returned and errno is set to indicate the error.

ERRORS
     The sigaltstack() function will fail if:

     EFAULT          The ss or oss argument points to an  illegal
                     address.



     EINVAL          The ss argument is not a null  pointer,  and
                     the  ss_flags  member  pointed to by ss con-
                     tains flags other than SS_DISABLE.



     ENOMEM          The size of the alternate stack area is less
                     than MINSIGSTKSZ.



     EPERM           An attempt was  made  to  modify  an  active
                     stack.



ATTRIBUTES
     See attributes(5) for descriptions of the  following  attri-
     butes:

     ____________________________________________________________
    |       ATTRIBUTE TYPE        |       ATTRIBUTE VALUE       |
    |_____________________________|_____________________________|
    | Interface Stability         | Standard                    |
    |_____________________________|_____________________________|
    | MT-Level                    | Async-Signal-Safe           |
    |_____________________________|_____________________________|




SunOS 5.10           Last change: 1 Nov 2003                    2






System Calls                                       sigaltstack(2)



SEE ALSO
     getcontext(2),  mmap(2),  sigaction(2),   ucontext.h(3HEAD),
     attributes(5), standards(5)

NOTES
     The value SIGSTKSZ is defined to be the number of bytes that
     would  be  used  to  cover the usual case when allocating an
     alternate  stack area.  The value MINSIGSTKSZ is defined  to
     be  the minimum stack size for a signal handler.  In comput-
     ing an alternate stack size,  a  program   should  add  that
     amount  to its stack requirements to allow for the operating
     system overhead.

     The following code fragment is typically used to allocate an
     alternate stack with an adjacent red zone (an unmapped page)
     to guard against stack overflow, as with default stacks:

     #include <signal.h>
     #include <sys/mman.h>

     stack_t sigstk;
     sigstk.ss_sp = mmap(NULL, SIGSTKSZ, PROT_READ | PROT_WRITE,
             MAP_PRIVATE | MAP_ANON, -1, 0);
     if (sigstk.ss_sp == MAP_FAILED)
             /* error return */;
     sigstk.ss_size = SIGSTKSZ;
     sigstk.ss_flags = 0;
     if (sigaltstack(&sigstk, NULL) < 0)
             perror("sigaltstack");


























SunOS 5.10           Last change: 1 Nov 2003                    3





Man(1) output converted with man2html and wrapped by fishsponge

This page was generated on Wed Sep 12 11:27:10 GMT 2007

Your favourite pages:

No pages logged yet...

Top 10 most popular pages:

prstat man page (24547 hits)
(Solaris 10 11_06)

netcat man page (17695 hits)
(Suse Linux 10.1)

ssh-socks5-proxy-connect man page (13536 hits)
(Solaris 10 11_06)

signal man page (12551 hits)
(Suse Linux 10.1)

startproc man page (11991 hits)
(Suse Linux 10.1)

raidctl man page (11358 hits)
(Solaris 10 11_06)

adv_cap_autoneg man page (10288 hits)
(Solaris 10 11_06)

sqlite3 man page (9729 hits)
(openSUSE 10.2)

CPAN man page (8947 hits)
(Suse Linux 10.1)

BusyBox man page (7702 hits)
(Suse Linux 10.1)

Useful Links

Go Back

Visitor Statistics


Valid XHTML 1.0 Transitional     Valid CSS!

Cambridge Plus :: Pyrenees Prices and Terms and Conditions :: Analogue Circuit Design :: Classic Motorcycle Piston Rings
Unix Man Pages / Linux Man Pages :: HiFi Forum :: SIP VoIP Phone & Provider Reviews :: UNIX/Linux Forum Archives

More info on advertising on Unix/Linux Forum