diff options
Diffstat (limited to '')
-rw-r--r-- | templates/man2/sigaltstack.2.pot | 1055 |
1 files changed, 1055 insertions, 0 deletions
diff --git a/templates/man2/sigaltstack.2.pot b/templates/man2/sigaltstack.2.pot new file mode 100644 index 00000000..273024ba --- /dev/null +++ b/templates/man2/sigaltstack.2.pot @@ -0,0 +1,1055 @@ +# SOME DESCRIPTIVE TITLE +# Copyright (C) YEAR Free Software Foundation, Inc. +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"POT-Creation-Date: 2024-03-01 17:08+0100\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" +"Language-Team: LANGUAGE <LL@li.org>\n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#. type: TH +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "sigaltstack" +msgstr "" + +#. type: TH +#: archlinux fedora-40 fedora-rawhide +#, no-wrap +msgid "2023-10-31" +msgstr "" + +#. type: TH +#: archlinux fedora-40 fedora-rawhide +#, no-wrap +msgid "Linux man-pages 6.06" +msgstr "" + +#. type: SH +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "NAME" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-leap-15-6 opensuse-tumbleweed +msgid "sigaltstack - set and/or get signal stack context" +msgstr "" + +#. type: SH +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "LIBRARY" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-leap-15-6 opensuse-tumbleweed +msgid "Standard C library (I<libc>, I<-lc>)" +msgstr "" + +#. type: SH +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "SYNOPSIS" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B<#include E<lt>signal.hE<gt>>\n" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "" +"B<int sigaltstack(const stack_t *_Nullable restrict >I<ss>B<,>\n" +"B< stack_t *_Nullable restrict >I<old_ss>B<);>\n" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Feature Test Macro Requirements for glibc (see B<feature_test_macros>(7)):" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-leap-15-6 opensuse-tumbleweed +msgid "B<sigaltstack>():" +msgstr "" + +#. || _XOPEN_SOURCE && _XOPEN_SOURCE_EXTENDED +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "" +" _XOPEN_SOURCE E<gt>= 500\n" +" || /* Since glibc 2.12: */ _POSIX_C_SOURCE E<gt>= 200809L\n" +" || /* glibc E<lt>= 2.19: */ _BSD_SOURCE\n" +msgstr "" + +#. type: SH +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "DESCRIPTION" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"B<sigaltstack>() allows a thread to define a new alternate signal stack and/" +"or retrieve the state of an existing alternate signal stack. An alternate " +"signal stack is used during the execution of a signal handler if the " +"establishment of that handler (see B<sigaction>(2)) requested it." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"The normal sequence of events for using an alternate signal stack is the " +"following:" +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "1." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-leap-15-6 opensuse-tumbleweed +msgid "Allocate an area of memory to be used for the alternate signal stack." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "2." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Use B<sigaltstack>() to inform the system of the existence and location of " +"the alternate signal stack." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "3." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"When establishing a signal handler using B<sigaction>(2), inform the system " +"that the signal handler should be executed on the alternate signal stack by " +"specifying the B<SA_ONSTACK> flag." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"The I<ss> argument is used to specify a new alternate signal stack, while " +"the I<old_ss> argument is used to retrieve information about the currently " +"established signal stack. If we are interested in performing just one of " +"these tasks, then the other argument can be specified as NULL." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"The I<stack_t> type used to type the arguments of this function is defined " +"as follows:" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "" +"typedef struct {\n" +" void *ss_sp; /* Base address of stack */\n" +" int ss_flags; /* Flags */\n" +" size_t ss_size; /* Number of bytes in stack */\n" +"} stack_t;\n" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"To establish a new alternate signal stack, the fields of this structure are " +"set as follows:" +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "I<ss.ss_flags>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-leap-15-6 opensuse-tumbleweed +msgid "This field contains either 0, or the following flag:" +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B<SS_AUTODISARM> (since Linux 4.7)" +msgstr "" + +#. commit 2a74213838104a41588d86fd5e8d344972891ace +#. See tools/testing/selftests/sigaltstack/sas.c in kernel sources +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Clear the alternate signal stack settings on entry to the signal handler. " +"When the signal handler returns, the previous alternate signal stack " +"settings are restored." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"This flag was added in order to make it safe to switch away from the signal " +"handler with B<swapcontext>(3). Without this flag, a subsequently handled " +"signal will corrupt the state of the switched-away signal handler. On " +"kernels where this flag is not supported, B<sigaltstack>() fails with the " +"error B<EINVAL> when this flag is supplied." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "I<ss.ss_sp>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"This field specifies the starting address of the stack. When a signal " +"handler is invoked on the alternate stack, the kernel automatically aligns " +"the address given in I<ss.ss_sp> to a suitable address boundary for the " +"underlying hardware architecture." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "I<ss.ss_size>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"This field specifies the size of the stack. The constant B<SIGSTKSZ> is " +"defined to be large enough to cover the usual size requirements for an " +"alternate signal stack, and the constant B<MINSIGSTKSZ> defines the minimum " +"size required to execute a signal handler." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"To disable an existing stack, specify I<ss.ss_flags> as B<SS_DISABLE>. In " +"this case, the kernel ignores any other flags in I<ss.ss_flags> and the " +"remaining fields in I<ss>." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"If I<old_ss> is not NULL, then it is used to return information about the " +"alternate signal stack which was in effect prior to the call to " +"B<sigaltstack>(). The I<old_ss.ss_sp> and I<old_ss.ss_size> fields return " +"the starting address and size of that stack. The I<old_ss.ss_flags> may " +"return either of the following values:" +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B<SS_ONSTACK>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"The thread is currently executing on the alternate signal stack. (Note that " +"it is not possible to change the alternate signal stack if the thread is " +"currently executing on it.)" +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B<SS_DISABLE>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-leap-15-6 opensuse-tumbleweed +msgid "The alternate signal stack is currently disabled." +msgstr "" + +#. FIXME Was it intended that one can set up a different alternative +#. signal stack in this scenario? (In passing, if one does this, the +#. sigaltstack(NULL, &old_ss) now returns old_ss.ss_flags==SS_AUTODISARM +#. rather than old_ss.ss_flags==SS_DISABLE. The API design here seems +#. confusing... +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Alternatively, this value is returned if the thread is currently executing " +"on an alternate signal stack that was established using the B<SS_AUTODISARM> " +"flag. In this case, it is safe to switch away from the signal handler with " +"B<swapcontext>(3). It is also possible to set up a different alternative " +"signal stack using a further call to B<sigaltstack>()." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B<SS_AUTODISARM>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"The alternate signal stack has been marked to be autodisarmed as described " +"above." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"By specifying I<ss> as NULL, and I<old_ss> as a non-NULL value, one can " +"obtain the current settings for the alternate signal stack without changing " +"them." +msgstr "" + +#. type: SH +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "RETURN VALUE" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"B<sigaltstack>() returns 0 on success, or -1 on failure with I<errno> set " +"to indicate the error." +msgstr "" + +#. type: SH +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "ERRORS" +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B<EFAULT>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Either I<ss> or I<old_ss> is not NULL and points to an area outside of the " +"process's address space." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B<EINVAL>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-leap-15-6 opensuse-tumbleweed +msgid "I<ss> is not NULL and the I<ss_flags> field contains an invalid flag." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B<ENOMEM>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"The specified size of the new alternate signal stack I<ss.ss_size> was less " +"than B<MINSIGSTKSZ>." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B<EPERM>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"An attempt was made to change the alternate signal stack while it was active " +"(i.e., the thread was already executing on the current alternate signal " +"stack)." +msgstr "" + +#. type: SH +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "ATTRIBUTES" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"For an explanation of the terms used in this section, see B<attributes>(7)." +msgstr "" + +#. type: tbl table +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "Interface" +msgstr "" + +#. type: tbl table +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "Attribute" +msgstr "" + +#. type: tbl table +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "Value" +msgstr "" + +#. type: tbl table +#: archlinux debian-unstable fedora-40 fedora-rawhide opensuse-tumbleweed +#, no-wrap +msgid ".na\n" +msgstr "" + +#. type: tbl table +#: archlinux debian-unstable fedora-40 fedora-rawhide opensuse-tumbleweed +#, no-wrap +msgid ".nh\n" +msgstr "" + +#. type: tbl table +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B<sigaltstack>()" +msgstr "" + +#. type: tbl table +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "Thread safety" +msgstr "" + +#. type: tbl table +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "MT-Safe" +msgstr "" + +#. type: SH +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "STANDARDS" +msgstr "" + +#. type: Plain text +#: archlinux debian-unstable fedora-40 fedora-rawhide opensuse-leap-15-6 +#: opensuse-tumbleweed +msgid "POSIX.1-2008." +msgstr "" + +#. type: Plain text +#: archlinux debian-unstable fedora-40 fedora-rawhide opensuse-leap-15-6 +#: opensuse-tumbleweed +msgid "B<SS_AUTODISARM> is a Linux extension." +msgstr "" + +#. type: SH +#: archlinux debian-unstable fedora-40 fedora-rawhide opensuse-leap-15-6 +#: opensuse-tumbleweed +#, no-wrap +msgid "HISTORY" +msgstr "" + +#. type: Plain text +#: archlinux debian-unstable fedora-40 fedora-rawhide opensuse-leap-15-6 +#: opensuse-tumbleweed +msgid "POSIX.1-2001, SUSv2, SVr4." +msgstr "" + +#. type: SH +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "NOTES" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"The most common usage of an alternate signal stack is to handle the " +"B<SIGSEGV> signal that is generated if the space available for the standard " +"stack is exhausted: in this case, a signal handler for B<SIGSEGV> cannot be " +"invoked on the standard stack; if we wish to handle it, we must use an " +"alternate signal stack." +msgstr "" + +#. type: Plain text +#: archlinux debian-unstable fedora-40 fedora-rawhide opensuse-tumbleweed +msgid "" +"Establishing an alternate signal stack is useful if a thread expects that it " +"may exhaust its standard stack. This may occur, for example, because the " +"stack grows so large that it encounters the upwardly growing heap, or it " +"reaches a limit established by a call to B<\\%setrlimit(RLIMIT_STACK, " +"&rlim)>. If the standard stack is exhausted, the kernel sends the thread a " +"B<SIGSEGV> signal. In these circumstances the only way to catch this signal " +"is on an alternate signal stack." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"On most hardware architectures supported by Linux, stacks grow downward. " +"B<sigaltstack>() automatically takes account of the direction of stack " +"growth." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Functions called from a signal handler executing on an alternate signal " +"stack will also use the alternate signal stack. (This also applies to any " +"handlers invoked for other signals while the thread is executing on the " +"alternate signal stack.) Unlike the standard stack, the system does not " +"automatically extend the alternate signal stack. Exceeding the allocated " +"size of the alternate signal stack will lead to unpredictable results." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"A successful call to B<execve>(2) removes any existing alternate signal " +"stack. A child process created via B<fork>(2) inherits a copy of its " +"parent's alternate signal stack settings. The same is also true for a child " +"process created using B<clone>(2), unless the clone flags include " +"B<CLONE_VM> and do not include B<CLONE_VFORK>, in which case any alternate " +"signal stack that was established in the parent is disabled in the child " +"process." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"B<sigaltstack>() supersedes the older B<sigstack>() call. For backward " +"compatibility, glibc also provides B<sigstack>(). All new applications " +"should be written using B<sigaltstack>()." +msgstr "" + +#. type: SS +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "History" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"4.2BSD had a B<sigstack>() system call. It used a slightly different " +"struct, and had the major disadvantage that the caller had to know the " +"direction of stack growth." +msgstr "" + +#. type: SH +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "BUGS" +msgstr "" + +#. Linux 2.3.40 +#. After quite a bit of web and mail archive searching, +#. I could not find the patch on any mailing list, and I +#. could find no place where the rationale for this change +#. explained -- mtk +#. See the source code of Illumos and FreeBSD, for example. +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"In Linux 2.2 and earlier, the only flag that could be specified in I<ss." +"sa_flags> was B<SS_DISABLE>. In the lead up to the release of the Linux 2.4 " +"kernel, a change was made to allow B<sigaltstack>() to allow I<ss." +"ss_flags==SS_ONSTACK> with the same meaning as I<ss.ss_flags==0> (i.e., the " +"inclusion of B<SS_ONSTACK> in I<ss.ss_flags> is a no-op). On other " +"implementations, and according to POSIX.1, B<SS_ONSTACK> appears only as a " +"reported flag in I<old_ss.ss_flags>. On Linux, there is no need ever to " +"specify B<SS_ONSTACK> in I<ss.ss_flags>, and indeed doing so should be " +"avoided on portability grounds: various other systems give an error if " +"B<SS_ONSTACK> is specified in I<ss.ss_flags>." +msgstr "" + +#. type: SH +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "EXAMPLES" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"The following code segment demonstrates the use of B<sigaltstack>() (and " +"B<sigaction>(2)) to install an alternate signal stack that is employed by a " +"handler for the B<SIGSEGV> signal:" +msgstr "" + +#. type: Plain text +#: archlinux debian-unstable fedora-40 fedora-rawhide opensuse-tumbleweed +#, no-wrap +msgid "" +"stack_t ss;\n" +"\\&\n" +"ss.ss_sp = malloc(SIGSTKSZ);\n" +"if (ss.ss_sp == NULL) {\n" +" perror(\"malloc\");\n" +" exit(EXIT_FAILURE);\n" +"}\n" +"\\&\n" +"ss.ss_size = SIGSTKSZ;\n" +"ss.ss_flags = 0;\n" +"if (sigaltstack(&ss, NULL) == -1) {\n" +" perror(\"sigaltstack\");\n" +" exit(EXIT_FAILURE);\n" +"}\n" +"\\&\n" +"sa.sa_flags = SA_ONSTACK;\n" +"sa.sa_handler = handler(); /* Address of a signal handler */\n" +"sigemptyset(&sa.sa_mask);\n" +"if (sigaction(SIGSEGV, &sa, NULL) == -1) {\n" +" perror(\"sigaction\");\n" +" exit(EXIT_FAILURE);\n" +"}\n" +msgstr "" + +#. type: SH +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "SEE ALSO" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"B<execve>(2), B<setrlimit>(2), B<sigaction>(2), B<siglongjmp>(3), " +"B<sigsetjmp>(3), B<signal>(7)" +msgstr "" + +#. type: TH +#: debian-bookworm +#, no-wrap +msgid "2023-02-05" +msgstr "" + +#. type: TH +#: debian-bookworm +#, no-wrap +msgid "Linux man-pages 6.03" +msgstr "" + +#. type: Plain text +#: debian-bookworm +msgid "POSIX.1-2001, POSIX.1-2008, SUSv2, SVr4." +msgstr "" + +#. type: Plain text +#: debian-bookworm +msgid "The B<SS_AUTODISARM> flag is a Linux extension." +msgstr "" + +#. type: Plain text +#: debian-bookworm opensuse-leap-15-6 +msgid "" +"Establishing an alternate signal stack is useful if a thread expects that it " +"may exhaust its standard stack. This may occur, for example, because the " +"stack grows so large that it encounters the upwardly growing heap, or it " +"reaches a limit established by a call to B<setrlimit(RLIMIT_STACK, &rlim)>. " +"If the standard stack is exhausted, the kernel sends the thread a B<SIGSEGV> " +"signal. In these circumstances the only way to catch this signal is on an " +"alternate signal stack." +msgstr "" + +#. type: Plain text +#: debian-bookworm opensuse-leap-15-6 +#, no-wrap +msgid "stack_t ss;\n" +msgstr "" + +#. type: Plain text +#: debian-bookworm opensuse-leap-15-6 +#, no-wrap +msgid "" +"ss.ss_sp = malloc(SIGSTKSZ);\n" +"if (ss.ss_sp == NULL) {\n" +" perror(\"malloc\");\n" +" exit(EXIT_FAILURE);\n" +"}\n" +msgstr "" + +#. type: Plain text +#: debian-bookworm opensuse-leap-15-6 +#, no-wrap +msgid "" +"ss.ss_size = SIGSTKSZ;\n" +"ss.ss_flags = 0;\n" +"if (sigaltstack(&ss, NULL) == -1) {\n" +" perror(\"sigaltstack\");\n" +" exit(EXIT_FAILURE);\n" +"}\n" +msgstr "" + +#. type: Plain text +#: debian-bookworm opensuse-leap-15-6 +#, no-wrap +msgid "" +"sa.sa_flags = SA_ONSTACK;\n" +"sa.sa_handler = handler(); /* Address of a signal handler */\n" +"sigemptyset(&sa.sa_mask);\n" +"if (sigaction(SIGSEGV, &sa, NULL) == -1) {\n" +" perror(\"sigaction\");\n" +" exit(EXIT_FAILURE);\n" +"}\n" +msgstr "" + +#. type: TH +#: debian-unstable opensuse-tumbleweed +#, no-wrap +msgid "2023-07-20" +msgstr "" + +#. type: TH +#: debian-unstable opensuse-tumbleweed +#, no-wrap +msgid "Linux man-pages 6.05.01" +msgstr "" + +#. type: TH +#: mageia-cauldron +#, no-wrap +msgid "SIGALTSTACK" +msgstr "" + +#. type: TH +#: mageia-cauldron +#, no-wrap +msgid "20 September 1999" +msgstr "" + +#. type: TH +#: mageia-cauldron +#, no-wrap +msgid "Red Hat Linux 6.1" +msgstr "" + +#. type: TH +#: mageia-cauldron +#, no-wrap +msgid "Linux Programmer's Manual" +msgstr "" + +#. type: Plain text +#: mageia-cauldron +msgid "sigaltstack - get or set alternate signal stack content" +msgstr "" + +#. type: Plain text +#: mageia-cauldron +msgid "B<#include E<lt>signal.hE<gt>>" +msgstr "" + +#. type: Plain text +#: mageia-cauldron +msgid "B<int sigaltstack(const stack_t *>I<ss,>B< stack_t *>I<oss>B<);>" +msgstr "" + +#. type: Plain text +#: mageia-cauldron +msgid "where:" +msgstr "" + +#. type: TP +#: mageia-cauldron +#, no-wrap +msgid "I<ss>" +msgstr "" + +#. type: Plain text +#: mageia-cauldron +msgid "" +"points to a signalstack structure defined in E<lt>signal.hE<gt> containing " +"stack content after the call." +msgstr "" + +#. type: TP +#: mageia-cauldron +#, no-wrap +msgid "I<oss>" +msgstr "" + +#. type: Plain text +#: mageia-cauldron +msgid "" +"if not NULL, points to a signalstack structure containing stack content " +"before the call." +msgstr "" + +#. type: Plain text +#: mageia-cauldron +msgid "" +"I<sigaction>(2) may indicate that a signal should execute on an alternate " +"stack. Where this is the case, B<sigaltstack>(2) stores the signal in an " +"alternate stack structure I<ss> where its execution status may be examined " +"prior to processing." +msgstr "" + +#. type: Plain text +#: mageia-cauldron +msgid "The sigaltstack struct is defined in E<lt>signal.hE<gt> as follows:" +msgstr "" + +#. type: Plain text +#: mageia-cauldron +#, no-wrap +msgid "" +" void *ss_sp /* SVID3 uses caddr_t ss_sp\n" +" int ss_flags\n" +" size_t ss_size\n" +msgstr "" + +#. type: TP +#: mageia-cauldron +#, no-wrap +msgid "I<ss_sp>" +msgstr "" + +#. type: Plain text +#: mageia-cauldron +msgid "points to the stack structure." +msgstr "" + +#. type: TP +#: mageia-cauldron +#, no-wrap +msgid "I<ss_flags>" +msgstr "" + +#. type: Plain text +#: mageia-cauldron +msgid "specifies the stack state to SS_DISABLE or SS_ONSTACK as follows:" +msgstr "" + +#. type: Plain text +#: mageia-cauldron +msgid "" +"If I<ss> is not NULL,the new state may be set to SS_DISABLE, which specifies " +"that 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." +msgstr "" + +#. type: Plain text +#: mageia-cauldron +msgid "" +"If I<oss> is not NULL, the stack state may be either SS_ONSTACK or " +"SS_DISABLE. The value SS_ONSTACK indicates that the process is currently " +"executing on the alternate stack and that any attempt to modify it during " +"execution will fail. The value SS_DISABLE indicates that the current signal " +"stack is disabled." +msgstr "" + +#. type: TP +#: mageia-cauldron +#, no-wrap +msgid "I<ss_size>" +msgstr "" + +#. type: Plain text +#: mageia-cauldron +msgid "specifies the size of the stack." +msgstr "" + +#. type: Plain text +#: mageia-cauldron +msgid "" +"The value SIGSTKSZ defines the average number of bytes used when allocating " +"an alternate stack area. The value MINSIGSTKSZ defines the minimum stack " +"size for a signal handler. When processing an alternate stack size, your " +"program should include these values in the stack requirement to plan for the " +"overhead of the operating system." +msgstr "" + +#. type: SH +#: mageia-cauldron +#, no-wrap +msgid "RETURN VALUES" +msgstr "" + +#. type: Plain text +#: mageia-cauldron +msgid "B<sigaltstack>(2) returns 0 on success and -1 on failure." +msgstr "" + +#. type: Plain text +#: mageia-cauldron +msgid "B<sigaltstack>(2) sets errno for the following conditions:" +msgstr "" + +#. type: TP +#: mageia-cauldron +#, no-wrap +msgid "EINVAL" +msgstr "" + +#. type: Plain text +#: mageia-cauldron +msgid "" +"I<ss> is not a null pointer the I<ss_flags> member pointed to by I<ss> " +"contains flags other than SS_DISABLE." +msgstr "" + +#. type: TP +#: mageia-cauldron +#, no-wrap +msgid "ENOMEM" +msgstr "" + +#. type: Plain text +#: mageia-cauldron +msgid "The size of the alternate stack area is less than MINSIGSTKSZ." +msgstr "" + +#. type: TP +#: mageia-cauldron +#, no-wrap +msgid "EPERM" +msgstr "" + +#. type: Plain text +#: mageia-cauldron +msgid "An attempt was made to modify an active stack." +msgstr "" + +#. type: Plain text +#: mageia-cauldron +msgid "This function comforms to: XPG4-UNIX." +msgstr "" + +#. Add ucontext(5) and standards(5) if/when they're written. +#. type: Plain text +#: mageia-cauldron +msgid "B<getcontext>(2), B<sigaction>(2), B<sigsetjmp>(3)." +msgstr "" + +#. type: TH +#: opensuse-leap-15-6 +#, no-wrap +msgid "2023-03-30" +msgstr "" + +#. type: TH +#: opensuse-leap-15-6 +#, no-wrap +msgid "Linux man-pages 6.04" +msgstr "" |