summaryrefslogtreecommitdiffstats
path: root/templates/man2/sigaltstack.2.pot
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--templates/man2/sigaltstack.2.pot1055
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 ""