msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
-"POT-Creation-Date: 2012-05-28 07:17+0900\n"
+"POT-Creation-Date: 2013-03-22 01:06+0900\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"
"Content-Transfer-Encoding: 8bit\n"
#. type: TH
-#: build/C/man3/bsd_signal.3:23
+#: build/C/man3/bsd_signal.3:25
#, no-wrap
msgid "BSD_SIGNAL"
msgstr ""
#. type: TH
-#: build/C/man3/bsd_signal.3:23 build/C/man2/getitimer.2:7
+#: build/C/man3/bsd_signal.3:25
#, no-wrap
msgid "2009-03-15"
msgstr ""
#. type: TH
-#: build/C/man3/bsd_signal.3:23 build/C/man2/eventfd.2:21 build/C/man2/getitimer.2:7 build/C/man3/gsignal.3:25 build/C/man2/kill.2:44 build/C/man2/killpg.2:40 build/C/man2/pause.2:30 build/C/man2/prctl.2:48 build/C/man3/profil.3:28 build/C/man3/psignal.3:28 build/C/man3/raise.3:27 build/C/man2/rt_sigqueueinfo.2:23 build/C/man2/sgetmask.2:24 build/C/man2/sigaction.2:45 build/C/man2/sigaltstack.2:25 build/C/man7/sigevent.7:24 build/C/man3/siginterrupt.3:29 build/C/man2/signal.2:34 build/C/man7/signal.7:44 build/C/man2/signalfd.2:19 build/C/man3/sigpause.3:23 build/C/man2/sigpending.2:27 build/C/man2/sigprocmask.2:27 build/C/man3/sigqueue.3:26 build/C/man2/sigreturn.2:27 build/C/man3/sigset.3:24 build/C/man3/sigsetops.3:29 build/C/man2/sigsuspend.2:27 build/C/man3/sigvec.3:24 build/C/man3/sigwait.3:24 build/C/man2/sigwaitinfo.2:23 build/C/man3/sysv_signal.3:23 build/C/man2/timer_create.2:29 build/C/man2/timer_delete.2:23 build/C/man2/timer_getoverrun.2:23 build/C/man2/timer_settime.2:23 build/C/man2/timerfd_create.2:20 build/C/man2/tkill.2:29 build/C/man2/wait.2:50 build/C/man2/wait4.2:34
+#: build/C/man3/bsd_signal.3:25 build/C/man2/eventfd.2:22 build/C/man2/getitimer.2:12 build/C/man3/gsignal.3:27 build/C/man2/kill.2:44 build/C/man2/killpg.2:42 build/C/man2/pause.2:30 build/C/man2/prctl.2:52 build/C/man3/profil.3:28 build/C/man3/psignal.3:30 build/C/man3/raise.3:29 build/C/man2/rt_sigqueueinfo.2:25 build/C/man2/s390_runtime_instr.2:26 build/C/man2/sgetmask.2:26 build/C/man2/sigaction.2:47 build/C/man2/sigaltstack.2:27 build/C/man7/sigevent.7:26 build/C/man3/siginterrupt.3:31 build/C/man2/signal.2:36 build/C/man7/signal.7:46 build/C/man2/signalfd.2:20 build/C/man3/sigpause.3:25 build/C/man2/sigpending.2:29 build/C/man2/sigprocmask.2:29 build/C/man3/sigqueue.3:28 build/C/man2/sigreturn.2:29 build/C/man3/sigset.3:26 build/C/man3/sigsetops.3:31 build/C/man2/sigsuspend.2:29 build/C/man3/sigvec.3:26 build/C/man3/sigwait.3:26 build/C/man2/sigwaitinfo.2:25 build/C/man3/sysv_signal.3:25 build/C/man2/timer_create.2:31 build/C/man2/timer_delete.2:26 build/C/man2/timer_getoverrun.2:26 build/C/man2/timer_settime.2:26 build/C/man2/timerfd_create.2:21 build/C/man2/tkill.2:29 build/C/man2/wait.2:49 build/C/man2/wait4.2:33
#, no-wrap
msgid "Linux Programmer's Manual"
msgstr ""
#. type: SH
-#: build/C/man3/bsd_signal.3:24 build/C/man2/eventfd.2:22 build/C/man2/getitimer.2:8 build/C/man3/gsignal.3:26 build/C/man2/kill.2:45 build/C/man2/killpg.2:41 build/C/man2/pause.2:31 build/C/man2/prctl.2:49 build/C/man3/profil.3:29 build/C/man3/psignal.3:29 build/C/man3/raise.3:28 build/C/man2/rt_sigqueueinfo.2:24 build/C/man2/sgetmask.2:25 build/C/man2/sigaction.2:46 build/C/man2/sigaltstack.2:26 build/C/man7/sigevent.7:25 build/C/man3/siginterrupt.3:30 build/C/man2/signal.2:35 build/C/man7/signal.7:45 build/C/man2/signalfd.2:20 build/C/man3/sigpause.3:24 build/C/man2/sigpending.2:28 build/C/man2/sigprocmask.2:28 build/C/man3/sigqueue.3:27 build/C/man2/sigreturn.2:28 build/C/man3/sigset.3:25 build/C/man3/sigsetops.3:30 build/C/man2/sigsuspend.2:28 build/C/man3/sigvec.3:25 build/C/man3/sigwait.3:25 build/C/man2/sigwaitinfo.2:24 build/C/man3/sysv_signal.3:24 build/C/man2/timer_create.2:30 build/C/man2/timer_delete.2:24 build/C/man2/timer_getoverrun.2:24 build/C/man2/timer_settime.2:24 build/C/man2/timerfd_create.2:21 build/C/man2/tkill.2:30 build/C/man2/wait.2:51 build/C/man2/wait4.2:35
+#: build/C/man3/bsd_signal.3:26 build/C/man2/eventfd.2:23 build/C/man2/getitimer.2:13 build/C/man3/gsignal.3:28 build/C/man2/kill.2:45 build/C/man2/killpg.2:43 build/C/man2/pause.2:31 build/C/man2/prctl.2:53 build/C/man3/profil.3:29 build/C/man3/psignal.3:31 build/C/man3/raise.3:30 build/C/man2/rt_sigqueueinfo.2:26 build/C/man2/s390_runtime_instr.2:27 build/C/man2/sgetmask.2:27 build/C/man2/sigaction.2:48 build/C/man2/sigaltstack.2:28 build/C/man7/sigevent.7:27 build/C/man3/siginterrupt.3:32 build/C/man2/signal.2:37 build/C/man7/signal.7:47 build/C/man2/signalfd.2:21 build/C/man3/sigpause.3:26 build/C/man2/sigpending.2:30 build/C/man2/sigprocmask.2:30 build/C/man3/sigqueue.3:29 build/C/man2/sigreturn.2:30 build/C/man3/sigset.3:27 build/C/man3/sigsetops.3:32 build/C/man2/sigsuspend.2:30 build/C/man3/sigvec.3:27 build/C/man3/sigwait.3:27 build/C/man2/sigwaitinfo.2:26 build/C/man3/sysv_signal.3:26 build/C/man2/timer_create.2:32 build/C/man2/timer_delete.2:27 build/C/man2/timer_getoverrun.2:27 build/C/man2/timer_settime.2:27 build/C/man2/timerfd_create.2:22 build/C/man2/tkill.2:30 build/C/man2/wait.2:50 build/C/man2/wait4.2:34
#, no-wrap
msgid "NAME"
msgstr ""
#. type: Plain text
-#: build/C/man3/bsd_signal.3:26
+#: build/C/man3/bsd_signal.3:28
msgid "bsd_signal - signal handling with BSD semantics"
msgstr ""
#. type: SH
-#: build/C/man3/bsd_signal.3:26 build/C/man2/eventfd.2:24 build/C/man2/getitimer.2:10 build/C/man3/gsignal.3:28 build/C/man2/kill.2:47 build/C/man2/killpg.2:43 build/C/man2/pause.2:33 build/C/man2/prctl.2:51 build/C/man3/profil.3:31 build/C/man3/psignal.3:31 build/C/man3/raise.3:30 build/C/man2/rt_sigqueueinfo.2:26 build/C/man2/sgetmask.2:27 build/C/man2/sigaction.2:48 build/C/man2/sigaltstack.2:28 build/C/man7/sigevent.7:27 build/C/man3/siginterrupt.3:32 build/C/man2/signal.2:37 build/C/man2/signalfd.2:22 build/C/man3/sigpause.3:26 build/C/man2/sigpending.2:30 build/C/man2/sigprocmask.2:30 build/C/man3/sigqueue.3:29 build/C/man2/sigreturn.2:30 build/C/man3/sigset.3:27 build/C/man3/sigsetops.3:33 build/C/man2/sigsuspend.2:30 build/C/man3/sigvec.3:27 build/C/man3/sigwait.3:27 build/C/man2/sigwaitinfo.2:26 build/C/man3/sysv_signal.3:26 build/C/man2/timer_create.2:32 build/C/man2/timer_delete.2:26 build/C/man2/timer_getoverrun.2:26 build/C/man2/timer_settime.2:27 build/C/man2/timerfd_create.2:24 build/C/man2/tkill.2:32 build/C/man2/wait.2:53 build/C/man2/wait4.2:37
+#: build/C/man3/bsd_signal.3:28 build/C/man2/eventfd.2:25 build/C/man2/getitimer.2:15 build/C/man3/gsignal.3:30 build/C/man2/kill.2:47 build/C/man2/killpg.2:45 build/C/man2/pause.2:33 build/C/man2/prctl.2:55 build/C/man3/profil.3:31 build/C/man3/psignal.3:33 build/C/man3/raise.3:32 build/C/man2/rt_sigqueueinfo.2:28 build/C/man2/s390_runtime_instr.2:29 build/C/man2/sgetmask.2:29 build/C/man2/sigaction.2:50 build/C/man2/sigaltstack.2:30 build/C/man7/sigevent.7:29 build/C/man3/siginterrupt.3:34 build/C/man2/signal.2:39 build/C/man2/signalfd.2:23 build/C/man3/sigpause.3:28 build/C/man2/sigpending.2:32 build/C/man2/sigprocmask.2:32 build/C/man3/sigqueue.3:31 build/C/man2/sigreturn.2:32 build/C/man3/sigset.3:29 build/C/man3/sigsetops.3:35 build/C/man2/sigsuspend.2:32 build/C/man3/sigvec.3:29 build/C/man3/sigwait.3:29 build/C/man2/sigwaitinfo.2:28 build/C/man3/sysv_signal.3:28 build/C/man2/timer_create.2:34 build/C/man2/timer_delete.2:29 build/C/man2/timer_getoverrun.2:29 build/C/man2/timer_settime.2:30 build/C/man2/timerfd_create.2:25 build/C/man2/tkill.2:32 build/C/man2/wait.2:52 build/C/man2/wait4.2:36
#, no-wrap
msgid "SYNOPSIS"
msgstr ""
#. type: Plain text
-#: build/C/man3/bsd_signal.3:28
+#: build/C/man3/bsd_signal.3:30
msgid "B<#define _XOPEN_SOURCE> /* See feature_test_macros(7) */"
msgstr ""
#. type: Plain text
-#: build/C/man3/bsd_signal.3:30 build/C/man2/killpg.2:45 build/C/man2/sigaltstack.2:30 build/C/man2/signal.2:39 build/C/man2/sigpending.2:32 build/C/man2/sigprocmask.2:32 build/C/man3/sigqueue.3:31 build/C/man3/sigset.3:29 build/C/man3/sigsetops.3:35 build/C/man2/sigsuspend.2:32 build/C/man3/sigvec.3:29 build/C/man3/sysv_signal.3:30
+#: build/C/man3/bsd_signal.3:32 build/C/man2/killpg.2:47 build/C/man2/sigaltstack.2:32 build/C/man2/signal.2:41 build/C/man2/sigpending.2:34 build/C/man2/sigprocmask.2:34 build/C/man3/sigqueue.3:33 build/C/man3/sigset.3:31 build/C/man3/sigsetops.3:37 build/C/man2/sigsuspend.2:34 build/C/man3/sigvec.3:31 build/C/man3/sysv_signal.3:32
msgid "B<#include E<lt>signal.hE<gt>>"
msgstr ""
#. type: Plain text
-#: build/C/man3/bsd_signal.3:32 build/C/man2/signal.2:41 build/C/man3/sigset.3:31 build/C/man3/sysv_signal.3:32
+#: build/C/man3/bsd_signal.3:34 build/C/man2/signal.2:43 build/C/man3/sigset.3:33 build/C/man3/sysv_signal.3:34
msgid "B<typedef void (*sighandler_t)(int);>"
msgstr ""
#. type: Plain text
-#: build/C/man3/bsd_signal.3:34
+#: build/C/man3/bsd_signal.3:36
msgid "B<sighandler_t bsd_signal(int >I<signum>B<, sighandler_t >I<handler>B<);>"
msgstr ""
#. type: SH
-#: build/C/man3/bsd_signal.3:34 build/C/man2/eventfd.2:28 build/C/man2/getitimer.2:19 build/C/man3/gsignal.3:47 build/C/man2/kill.2:65 build/C/man2/killpg.2:59 build/C/man2/pause.2:37 build/C/man2/prctl.2:58 build/C/man3/profil.3:44 build/C/man3/psignal.3:54 build/C/man3/raise.3:36 build/C/man2/rt_sigqueueinfo.2:33 build/C/man2/sgetmask.2:31 build/C/man2/sigaction.2:65 build/C/man2/sigaltstack.2:49 build/C/man7/sigevent.7:50 build/C/man3/siginterrupt.3:53 build/C/man2/signal.2:43 build/C/man7/signal.7:47 build/C/man2/signalfd.2:26 build/C/man3/sigpause.3:34 build/C/man2/sigpending.2:44 build/C/man2/sigprocmask.2:45 build/C/man3/sigqueue.3:41 build/C/man2/sigreturn.2:32 build/C/man3/sigset.3:56 build/C/man3/sigsetops.3:61 build/C/man2/sigsuspend.2:44 build/C/man3/sigvec.3:47 build/C/man3/sigwait.3:43 build/C/man2/sigwaitinfo.2:44 build/C/man3/sysv_signal.3:34 build/C/man2/timer_create.2:50 build/C/man2/timer_delete.2:42 build/C/man2/timer_getoverrun.2:42 build/C/man2/timer_settime.2:47 build/C/man2/timerfd_create.2:36 build/C/man2/tkill.2:38 build/C/man2/wait.2:82 build/C/man2/wait4.2:68
+#: build/C/man3/bsd_signal.3:36 build/C/man2/eventfd.2:29 build/C/man2/getitimer.2:24 build/C/man3/gsignal.3:49 build/C/man2/kill.2:65 build/C/man2/killpg.2:60 build/C/man2/pause.2:37 build/C/man2/prctl.2:62 build/C/man3/profil.3:44 build/C/man3/psignal.3:56 build/C/man3/raise.3:38 build/C/man2/rt_sigqueueinfo.2:38 build/C/man2/s390_runtime_instr.2:35 build/C/man2/sgetmask.2:36 build/C/man2/sigaction.2:70 build/C/man2/sigaltstack.2:51 build/C/man7/sigevent.7:52 build/C/man3/siginterrupt.3:55 build/C/man2/signal.2:45 build/C/man7/signal.7:49 build/C/man2/signalfd.2:27 build/C/man3/sigpause.3:36 build/C/man2/sigpending.2:46 build/C/man2/sigprocmask.2:47 build/C/man3/sigqueue.3:43 build/C/man2/sigreturn.2:34 build/C/man3/sigset.3:58 build/C/man3/sigsetops.3:63 build/C/man2/sigsuspend.2:46 build/C/man3/sigvec.3:49 build/C/man3/sigwait.3:45 build/C/man2/sigwaitinfo.2:46 build/C/man3/sysv_signal.3:36 build/C/man2/timer_create.2:52 build/C/man2/timer_delete.2:45 build/C/man2/timer_getoverrun.2:45 build/C/man2/timer_settime.2:50 build/C/man2/timerfd_create.2:37 build/C/man2/tkill.2:41 build/C/man2/wait.2:81 build/C/man2/wait4.2:67
#, no-wrap
msgid "DESCRIPTION"
msgstr ""
#. type: Plain text
-#: build/C/man3/bsd_signal.3:39
+#: build/C/man3/bsd_signal.3:41
msgid ""
"The B<bsd_signal>() function takes the same arguments, and performs the "
"same task, as B<signal>(2)."
msgstr ""
#. type: Plain text
-#: build/C/man3/bsd_signal.3:52
+#: build/C/man3/bsd_signal.3:54
msgid ""
"The difference between the two is that B<bsd_signal>() is guaranteed to "
"provide reliable signal semantics, that is: a) the disposition of the signal "
msgstr ""
#. type: SH
-#: build/C/man3/bsd_signal.3:52 build/C/man2/eventfd.2:222 build/C/man2/getitimer.2:117 build/C/man2/kill.2:99 build/C/man2/killpg.2:88 build/C/man2/pause.2:42 build/C/man2/prctl.2:546 build/C/man3/profil.3:66 build/C/man3/psignal.3:87 build/C/man3/raise.3:59 build/C/man2/rt_sigqueueinfo.2:124 build/C/man2/sgetmask.2:54 build/C/man2/sigaction.2:656 build/C/man2/sigaltstack.2:131 build/C/man3/siginterrupt.3:71 build/C/man2/signal.2:95 build/C/man2/signalfd.2:248 build/C/man3/sigpause.3:46 build/C/man2/sigpending.2:51 build/C/man2/sigprocmask.2:91 build/C/man3/sigqueue.3:81 build/C/man2/sigreturn.2:51 build/C/man3/sigset.3:127 build/C/man3/sigsetops.3:105 build/C/man2/sigsuspend.2:68 build/C/man3/sigvec.3:197 build/C/man3/sigwait.3:66 build/C/man2/sigwaitinfo.2:101 build/C/man3/sysv_signal.3:49 build/C/man2/timer_create.2:165 build/C/man2/timer_delete.2:50 build/C/man2/timer_getoverrun.2:79 build/C/man2/timer_settime.2:169 build/C/man2/timerfd_create.2:286 build/C/man2/tkill.2:69 build/C/man2/wait.2:354 build/C/man2/wait4.2:127
+#: build/C/man3/bsd_signal.3:54 build/C/man2/eventfd.2:222 build/C/man2/getitimer.2:122 build/C/man2/kill.2:99 build/C/man2/killpg.2:89 build/C/man2/pause.2:42 build/C/man2/prctl.2:766 build/C/man3/profil.3:66 build/C/man3/psignal.3:89 build/C/man3/raise.3:61 build/C/man2/rt_sigqueueinfo.2:129 build/C/man2/s390_runtime_instr.2:55 build/C/man2/sgetmask.2:59 build/C/man2/sigaction.2:660 build/C/man2/sigaltstack.2:133 build/C/man3/siginterrupt.3:73 build/C/man2/signal.2:97 build/C/man2/signalfd.2:251 build/C/man3/sigpause.3:48 build/C/man2/sigpending.2:53 build/C/man2/sigprocmask.2:93 build/C/man3/sigqueue.3:83 build/C/man2/sigreturn.2:53 build/C/man3/sigset.3:129 build/C/man3/sigsetops.3:107 build/C/man2/sigsuspend.2:70 build/C/man3/sigvec.3:199 build/C/man3/sigwait.3:69 build/C/man2/sigwaitinfo.2:105 build/C/man3/sysv_signal.3:51 build/C/man2/timer_create.2:167 build/C/man2/timer_delete.2:53 build/C/man2/timer_getoverrun.2:82 build/C/man2/timer_settime.2:173 build/C/man2/timerfd_create.2:287 build/C/man2/tkill.2:95 build/C/man2/wait.2:353 build/C/man2/wait4.2:132
#, no-wrap
msgid "RETURN VALUE"
msgstr ""
#. type: Plain text
-#: build/C/man3/bsd_signal.3:58
+#: build/C/man3/bsd_signal.3:60
msgid ""
"The B<bsd_signal>() function returns the previous value of the signal "
"handler, or B<SIG_ERR> on error."
msgstr ""
#. type: SH
-#: build/C/man3/bsd_signal.3:58 build/C/man2/eventfd.2:229 build/C/man2/getitimer.2:122 build/C/man2/kill.2:104 build/C/man2/killpg.2:93 build/C/man2/pause.2:53 build/C/man2/prctl.2:563 build/C/man2/rt_sigqueueinfo.2:129 build/C/man2/sgetmask.2:59 build/C/man2/sigaction.2:659 build/C/man2/sigaltstack.2:135 build/C/man3/siginterrupt.3:76 build/C/man2/signal.2:100 build/C/man2/signalfd.2:262 build/C/man2/sigpending.2:54 build/C/man2/sigprocmask.2:94 build/C/man3/sigqueue.3:89 build/C/man3/sigset.3:152 build/C/man3/sigsetops.3:121 build/C/man2/sigsuspend.2:72 build/C/man3/sigvec.3:214 build/C/man3/sigwait.3:71 build/C/man2/sigwaitinfo.2:110 build/C/man3/sysv_signal.3:55 build/C/man2/timer_create.2:173 build/C/man2/timer_delete.2:57 build/C/man2/timer_getoverrun.2:87 build/C/man2/timer_settime.2:178 build/C/man2/timerfd_create.2:301 build/C/man2/tkill.2:73 build/C/man2/wait.2:383 build/C/man2/wait4.2:130
+#: build/C/man3/bsd_signal.3:60 build/C/man2/eventfd.2:229 build/C/man2/getitimer.2:127 build/C/man2/kill.2:104 build/C/man2/killpg.2:94 build/C/man2/pause.2:53 build/C/man2/prctl.2:784 build/C/man2/rt_sigqueueinfo.2:134 build/C/man2/s390_runtime_instr.2:66 build/C/man2/sgetmask.2:64 build/C/man2/sigaction.2:663 build/C/man2/sigaltstack.2:137 build/C/man3/siginterrupt.3:78 build/C/man2/signal.2:102 build/C/man2/signalfd.2:265 build/C/man2/sigpending.2:56 build/C/man2/sigprocmask.2:96 build/C/man3/sigqueue.3:91 build/C/man3/sigset.3:154 build/C/man3/sigsetops.3:123 build/C/man2/sigsuspend.2:74 build/C/man3/sigvec.3:216 build/C/man3/sigwait.3:74 build/C/man2/sigwaitinfo.2:114 build/C/man3/sysv_signal.3:57 build/C/man2/timer_create.2:175 build/C/man2/timer_delete.2:60 build/C/man2/timer_getoverrun.2:90 build/C/man2/timer_settime.2:182 build/C/man2/timerfd_create.2:302 build/C/man2/tkill.2:99 build/C/man2/wait.2:382 build/C/man2/wait4.2:135
#, no-wrap
msgid "ERRORS"
msgstr ""
#. type: Plain text
-#: build/C/man3/bsd_signal.3:61 build/C/man3/sysv_signal.3:58
+#: build/C/man3/bsd_signal.3:63 build/C/man3/sysv_signal.3:60
msgid "As for B<signal>(2)."
msgstr ""
#. type: SH
-#: build/C/man3/bsd_signal.3:61 build/C/man2/eventfd.2:266 build/C/man2/getitimer.2:143 build/C/man3/gsignal.3:93 build/C/man2/kill.2:120 build/C/man2/killpg.2:110 build/C/man2/pause.2:57 build/C/man2/prctl.2:725 build/C/man3/profil.3:68 build/C/man3/psignal.3:97 build/C/man3/raise.3:62 build/C/man2/rt_sigqueueinfo.2:171 build/C/man2/sgetmask.2:61 build/C/man2/sigaction.2:671 build/C/man2/sigaltstack.2:154 build/C/man7/sigevent.7:128 build/C/man3/siginterrupt.3:80 build/C/man2/signal.2:105 build/C/man7/signal.7:836 build/C/man2/signalfd.2:304 build/C/man3/sigpause.3:54 build/C/man2/sigpending.2:59 build/C/man2/sigprocmask.2:107 build/C/man3/sigqueue.3:112 build/C/man2/sigreturn.2:58 build/C/man3/sigset.3:171 build/C/man3/sigsetops.3:126 build/C/man2/sigsuspend.2:80 build/C/man3/sigvec.3:219 build/C/man3/sigwait.3:77 build/C/man2/sigwaitinfo.2:129 build/C/man3/sysv_signal.3:58 build/C/man2/timer_create.2:191 build/C/man2/timer_delete.2:64 build/C/man2/timer_getoverrun.2:94 build/C/man2/timer_settime.2:203 build/C/man2/timerfd_create.2:370 build/C/man2/tkill.2:90 build/C/man2/wait.2:421 build/C/man2/wait4.2:133
+#: build/C/man3/bsd_signal.3:63 build/C/man2/eventfd.2:266 build/C/man2/getitimer.2:148 build/C/man3/gsignal.3:95 build/C/man2/kill.2:120 build/C/man2/killpg.2:111 build/C/man2/pause.2:57 build/C/man2/prctl.2:956 build/C/man3/profil.3:68 build/C/man3/psignal.3:99 build/C/man3/raise.3:64 build/C/man2/rt_sigqueueinfo.2:176 build/C/man2/s390_runtime_instr.2:82 build/C/man2/sgetmask.2:66 build/C/man2/sigaction.2:675 build/C/man2/sigaltstack.2:156 build/C/man7/sigevent.7:130 build/C/man3/siginterrupt.3:82 build/C/man2/signal.2:107 build/C/man7/signal.7:838 build/C/man2/signalfd.2:307 build/C/man3/sigpause.3:56 build/C/man2/sigpending.2:61 build/C/man2/sigprocmask.2:109 build/C/man3/sigqueue.3:114 build/C/man2/sigreturn.2:60 build/C/man3/sigset.3:173 build/C/man3/sigsetops.3:128 build/C/man2/sigsuspend.2:82 build/C/man3/sigvec.3:221 build/C/man3/sigwait.3:80 build/C/man2/sigwaitinfo.2:133 build/C/man3/sysv_signal.3:60 build/C/man2/timer_create.2:193 build/C/man2/timer_delete.2:67 build/C/man2/timer_getoverrun.2:97 build/C/man2/timer_settime.2:207 build/C/man2/timerfd_create.2:371 build/C/man2/tkill.2:116 build/C/man2/wait.2:420 build/C/man2/wait4.2:138
#, no-wrap
msgid "CONFORMING TO"
msgstr ""
#. type: Plain text
-#: build/C/man3/bsd_signal.3:68
+#: build/C/man3/bsd_signal.3:70
msgid ""
"4.2BSD, POSIX.1-2001. POSIX.1-2008 removes the specification of "
"B<bsd_signal>(), recommending the use of B<sigaction>(2) instead."
msgstr ""
#. type: SH
-#: build/C/man3/bsd_signal.3:68 build/C/man2/eventfd.2:271 build/C/man2/getitimer.2:153 build/C/man2/kill.2:122 build/C/man2/killpg.2:114 build/C/man3/raise.3:64 build/C/man2/rt_sigqueueinfo.2:173 build/C/man2/sgetmask.2:63 build/C/man2/sigaction.2:674 build/C/man2/sigaltstack.2:156 build/C/man2/signal.2:107 build/C/man2/signalfd.2:309 build/C/man3/sigpause.3:58 build/C/man2/sigpending.2:61 build/C/man2/sigprocmask.2:109 build/C/man3/sigqueue.3:114 build/C/man2/sigreturn.2:62 build/C/man3/sigset.3:188 build/C/man3/sigsetops.3:128 build/C/man2/sigsuspend.2:82 build/C/man3/sigvec.3:225 build/C/man3/sigwait.3:79 build/C/man2/sigwaitinfo.2:131 build/C/man3/sysv_signal.3:60 build/C/man2/timer_create.2:193 build/C/man2/timer_getoverrun.2:96 build/C/man2/tkill.2:96 build/C/man2/wait.2:423 build/C/man2/wait4.2:135
+#: build/C/man3/bsd_signal.3:70 build/C/man2/eventfd.2:271 build/C/man2/getitimer.2:158 build/C/man2/kill.2:122 build/C/man2/killpg.2:115 build/C/man3/raise.3:66 build/C/man2/rt_sigqueueinfo.2:178 build/C/man2/s390_runtime_instr.2:85 build/C/man2/sgetmask.2:68 build/C/man2/sigaction.2:678 build/C/man2/sigaltstack.2:158 build/C/man2/signal.2:109 build/C/man2/signalfd.2:312 build/C/man3/sigpause.3:60 build/C/man2/sigpending.2:63 build/C/man2/sigprocmask.2:111 build/C/man3/sigqueue.3:116 build/C/man2/sigreturn.2:64 build/C/man3/sigset.3:190 build/C/man3/sigsetops.3:130 build/C/man2/sigsuspend.2:84 build/C/man3/sigvec.3:227 build/C/man3/sigwait.3:82 build/C/man2/sigwaitinfo.2:135 build/C/man3/sysv_signal.3:62 build/C/man2/timer_create.2:195 build/C/man2/timer_getoverrun.2:99 build/C/man2/tkill.2:122 build/C/man2/wait.2:422 build/C/man2/wait4.2:147
#, no-wrap
msgid "NOTES"
msgstr ""
#. type: Plain text
-#: build/C/man3/bsd_signal.3:74
+#: build/C/man3/bsd_signal.3:76
msgid "Use of B<bsd_signal>() should be avoided; use B<sigaction>(2) instead."
msgstr ""
#. type: Plain text
-#: build/C/man3/bsd_signal.3:85
+#: build/C/man3/bsd_signal.3:87
msgid ""
"On modern Linux systems, B<bsd_signal>() and B<signal>(2) are equivalent. "
"But on older systems, B<signal>(2) provided unreliable signal semantics; "
msgstr ""
#. type: Plain text
-#: build/C/man3/bsd_signal.3:92 build/C/man3/sysv_signal.3:85
+#: build/C/man3/bsd_signal.3:94 build/C/man3/sysv_signal.3:87
msgid ""
"The use of I<sighandler_t> is a GNU extension; this type is only defined if "
"the B<_GNU_SOURCE> feature test macro is defined."
msgstr ""
#. type: SH
-#: build/C/man3/bsd_signal.3:92 build/C/man2/eventfd.2:417 build/C/man2/getitimer.2:219 build/C/man3/gsignal.3:101 build/C/man2/kill.2:170 build/C/man2/killpg.2:133 build/C/man2/pause.2:59 build/C/man2/prctl.2:739 build/C/man3/profil.3:79 build/C/man3/psignal.3:111 build/C/man3/raise.3:75 build/C/man2/rt_sigqueueinfo.2:183 build/C/man2/sgetmask.2:74 build/C/man2/sigaction.2:787 build/C/man2/sigaltstack.2:230 build/C/man7/sigevent.7:130 build/C/man3/siginterrupt.3:89 build/C/man2/signal.2:260 build/C/man7/signal.7:848 build/C/man2/signalfd.2:430 build/C/man3/sigpause.3:96 build/C/man2/sigpending.2:82 build/C/man2/sigprocmask.2:139 build/C/man3/sigqueue.3:147 build/C/man2/sigreturn.2:72 build/C/man3/sigset.3:264 build/C/man3/sigsetops.3:166 build/C/man2/sigsuspend.2:104 build/C/man3/sigvec.3:250 build/C/man3/sigwait.3:86 build/C/man2/sigwaitinfo.2:182 build/C/man3/sysv_signal.3:85 build/C/man2/timer_create.2:397 build/C/man2/timer_delete.2:66 build/C/man2/timer_getoverrun.2:128 build/C/man2/timer_settime.2:208 build/C/man2/timerfd_create.2:540 build/C/man2/tkill.2:105 build/C/man2/wait.2:605 build/C/man2/wait4.2:153
+#: build/C/man3/bsd_signal.3:94 build/C/man2/eventfd.2:417 build/C/man2/getitimer.2:239 build/C/man3/gsignal.3:103 build/C/man2/kill.2:170 build/C/man2/killpg.2:134 build/C/man2/pause.2:59 build/C/man2/prctl.2:970 build/C/man3/profil.3:79 build/C/man3/psignal.3:113 build/C/man3/raise.3:77 build/C/man2/rt_sigqueueinfo.2:188 build/C/man2/s390_runtime_instr.2:89 build/C/man2/sgetmask.2:80 build/C/man2/sigaction.2:791 build/C/man2/sigaltstack.2:232 build/C/man7/sigevent.7:132 build/C/man3/siginterrupt.3:91 build/C/man2/signal.2:275 build/C/man7/signal.7:850 build/C/man2/signalfd.2:433 build/C/man3/sigpause.3:98 build/C/man2/sigpending.2:84 build/C/man2/sigprocmask.2:141 build/C/man3/sigqueue.3:149 build/C/man2/sigreturn.2:74 build/C/man3/sigset.3:266 build/C/man3/sigsetops.3:168 build/C/man2/sigsuspend.2:106 build/C/man3/sigvec.3:252 build/C/man3/sigwait.3:89 build/C/man2/sigwaitinfo.2:187 build/C/man3/sysv_signal.3:87 build/C/man2/timer_create.2:399 build/C/man2/timer_delete.2:69 build/C/man2/timer_getoverrun.2:131 build/C/man2/timer_settime.2:212 build/C/man2/timerfd_create.2:541 build/C/man2/tkill.2:131 build/C/man2/wait.2:619 build/C/man2/wait4.2:165
#, no-wrap
msgid "SEE ALSO"
msgstr ""
#. type: Plain text
-#: build/C/man3/bsd_signal.3:97
+#: build/C/man3/bsd_signal.3:99
msgid "B<sigaction>(2), B<signal>(2), B<sysv_signal>(3), B<signal>(7)"
msgstr ""
#. type: SH
-#: build/C/man3/bsd_signal.3:97 build/C/man2/eventfd.2:428 build/C/man2/getitimer.2:226 build/C/man3/gsignal.3:105 build/C/man2/kill.2:180 build/C/man2/killpg.2:139 build/C/man2/pause.2:64 build/C/man2/prctl.2:742 build/C/man3/profil.3:84 build/C/man3/psignal.3:116 build/C/man3/raise.3:82 build/C/man2/rt_sigqueueinfo.2:191 build/C/man2/sgetmask.2:77 build/C/man2/sigaction.2:806 build/C/man2/sigaltstack.2:237 build/C/man7/sigevent.7:140 build/C/man3/siginterrupt.3:91 build/C/man2/signal.2:279 build/C/man7/signal.7:881 build/C/man2/signalfd.2:443 build/C/man3/sigpause.3:104 build/C/man2/sigpending.2:90 build/C/man2/sigprocmask.2:150 build/C/man3/sigqueue.3:155 build/C/man2/sigreturn.2:77 build/C/man3/sigset.3:274 build/C/man3/sigsetops.3:171 build/C/man2/sigsuspend.2:114 build/C/man3/sigvec.3:260 build/C/man3/sigwait.3:94 build/C/man2/sigwaitinfo.2:194 build/C/man3/sysv_signal.3:90 build/C/man2/timer_create.2:410 build/C/man2/timer_delete.2:72 build/C/man2/timer_getoverrun.2:138 build/C/man2/timer_settime.2:212 build/C/man2/timerfd_create.2:552 build/C/man2/tkill.2:110 build/C/man2/wait.2:617 build/C/man2/wait4.2:160
+#: build/C/man3/bsd_signal.3:99 build/C/man2/eventfd.2:428 build/C/man2/getitimer.2:246 build/C/man3/gsignal.3:107 build/C/man2/kill.2:180 build/C/man2/killpg.2:140 build/C/man2/pause.2:64 build/C/man2/prctl.2:973 build/C/man3/profil.3:84 build/C/man3/psignal.3:118 build/C/man3/raise.3:84 build/C/man2/rt_sigqueueinfo.2:196 build/C/man2/s390_runtime_instr.2:92 build/C/man2/sgetmask.2:83 build/C/man2/sigaction.2:810 build/C/man2/sigaltstack.2:239 build/C/man7/sigevent.7:142 build/C/man3/siginterrupt.3:93 build/C/man2/signal.2:294 build/C/man7/signal.7:883 build/C/man2/signalfd.2:446 build/C/man3/sigpause.3:106 build/C/man2/sigpending.2:92 build/C/man2/sigprocmask.2:152 build/C/man3/sigqueue.3:157 build/C/man2/sigreturn.2:79 build/C/man3/sigset.3:276 build/C/man3/sigsetops.3:173 build/C/man2/sigsuspend.2:116 build/C/man3/sigvec.3:262 build/C/man3/sigwait.3:97 build/C/man2/sigwaitinfo.2:199 build/C/man3/sysv_signal.3:92 build/C/man2/timer_create.2:414 build/C/man2/timer_delete.2:75 build/C/man2/timer_getoverrun.2:141 build/C/man2/timer_settime.2:216 build/C/man2/timerfd_create.2:553 build/C/man2/tkill.2:136 build/C/man2/wait.2:631 build/C/man2/wait4.2:172
#, no-wrap
msgid "COLOPHON"
msgstr ""
#. type: Plain text
-#: build/C/man3/bsd_signal.3:104 build/C/man2/eventfd.2:435 build/C/man2/getitimer.2:233 build/C/man3/gsignal.3:112 build/C/man2/kill.2:187 build/C/man2/killpg.2:146 build/C/man2/pause.2:71 build/C/man2/prctl.2:749 build/C/man3/profil.3:91 build/C/man3/psignal.3:123 build/C/man3/raise.3:89 build/C/man2/rt_sigqueueinfo.2:198 build/C/man2/sgetmask.2:84 build/C/man2/sigaction.2:813 build/C/man2/sigaltstack.2:244 build/C/man7/sigevent.7:147 build/C/man3/siginterrupt.3:98 build/C/man2/signal.2:286 build/C/man7/signal.7:888 build/C/man2/signalfd.2:450 build/C/man3/sigpause.3:111 build/C/man2/sigpending.2:97 build/C/man2/sigprocmask.2:157 build/C/man3/sigqueue.3:162 build/C/man2/sigreturn.2:84 build/C/man3/sigset.3:281 build/C/man3/sigsetops.3:178 build/C/man2/sigsuspend.2:121 build/C/man3/sigvec.3:267 build/C/man3/sigwait.3:101 build/C/man2/sigwaitinfo.2:201 build/C/man3/sysv_signal.3:97 build/C/man2/timer_create.2:417 build/C/man2/timer_delete.2:79 build/C/man2/timer_getoverrun.2:145 build/C/man2/timer_settime.2:219 build/C/man2/timerfd_create.2:559 build/C/man2/tkill.2:117 build/C/man2/wait.2:624 build/C/man2/wait4.2:167
+#: build/C/man3/bsd_signal.3:106 build/C/man2/eventfd.2:435 build/C/man2/getitimer.2:253 build/C/man3/gsignal.3:114 build/C/man2/kill.2:187 build/C/man2/killpg.2:147 build/C/man2/pause.2:71 build/C/man2/prctl.2:980 build/C/man3/profil.3:91 build/C/man3/psignal.3:125 build/C/man3/raise.3:91 build/C/man2/rt_sigqueueinfo.2:203 build/C/man2/s390_runtime_instr.2:99 build/C/man2/sgetmask.2:90 build/C/man2/sigaction.2:817 build/C/man2/sigaltstack.2:246 build/C/man7/sigevent.7:149 build/C/man3/siginterrupt.3:100 build/C/man2/signal.2:301 build/C/man7/signal.7:890 build/C/man2/signalfd.2:453 build/C/man3/sigpause.3:113 build/C/man2/sigpending.2:99 build/C/man2/sigprocmask.2:159 build/C/man3/sigqueue.3:164 build/C/man2/sigreturn.2:86 build/C/man3/sigset.3:283 build/C/man3/sigsetops.3:180 build/C/man2/sigsuspend.2:123 build/C/man3/sigvec.3:269 build/C/man3/sigwait.3:104 build/C/man2/sigwaitinfo.2:206 build/C/man3/sysv_signal.3:99 build/C/man2/timer_create.2:421 build/C/man2/timer_delete.2:82 build/C/man2/timer_getoverrun.2:148 build/C/man2/timer_settime.2:223 build/C/man2/timerfd_create.2:560 build/C/man2/tkill.2:143 build/C/man2/wait.2:638 build/C/man2/wait4.2:179
msgid ""
-"This page is part of release 3.41 of the Linux I<man-pages> project. A "
+"This page is part of release 3.50 of the Linux I<man-pages> project. A "
"description of the project, and information about reporting bugs, can be "
"found at http://www.kernel.org/doc/man-pages/."
msgstr ""
#. type: TH
-#: build/C/man2/eventfd.2:21
+#: build/C/man2/eventfd.2:22
#, no-wrap
msgid "EVENTFD"
msgstr ""
#. type: TH
-#: build/C/man2/eventfd.2:21
+#: build/C/man2/eventfd.2:22
#, no-wrap
msgid "2010-08-30"
msgstr ""
#. type: TH
-#: build/C/man2/eventfd.2:21 build/C/man2/getitimer.2:7 build/C/man2/kill.2:44 build/C/man2/killpg.2:40 build/C/man2/pause.2:30 build/C/man2/prctl.2:48 build/C/man3/profil.3:28 build/C/man2/rt_sigqueueinfo.2:23 build/C/man2/sgetmask.2:24 build/C/man2/sigaction.2:45 build/C/man2/sigaltstack.2:25 build/C/man2/signal.2:34 build/C/man7/signal.7:44 build/C/man2/signalfd.2:19 build/C/man3/sigpause.3:23 build/C/man2/sigpending.2:27 build/C/man2/sigprocmask.2:27 build/C/man3/sigqueue.3:26 build/C/man2/sigreturn.2:27 build/C/man3/sigset.3:24 build/C/man3/sigsetops.3:29 build/C/man2/sigsuspend.2:27 build/C/man3/sigvec.3:24 build/C/man3/sigwait.3:24 build/C/man2/sigwaitinfo.2:23 build/C/man2/timer_create.2:29 build/C/man2/timer_delete.2:23 build/C/man2/timer_getoverrun.2:23 build/C/man2/timer_settime.2:23 build/C/man2/timerfd_create.2:20 build/C/man2/tkill.2:29 build/C/man2/wait.2:50 build/C/man2/wait4.2:34
+#: build/C/man2/eventfd.2:22 build/C/man2/getitimer.2:12 build/C/man2/kill.2:44 build/C/man2/killpg.2:42 build/C/man2/pause.2:30 build/C/man2/prctl.2:52 build/C/man3/profil.3:28 build/C/man2/rt_sigqueueinfo.2:25 build/C/man2/sgetmask.2:26 build/C/man2/sigaction.2:47 build/C/man2/sigaltstack.2:27 build/C/man2/signal.2:36 build/C/man7/signal.7:46 build/C/man2/signalfd.2:20 build/C/man3/sigpause.3:25 build/C/man2/sigpending.2:29 build/C/man2/sigprocmask.2:29 build/C/man3/sigqueue.3:28 build/C/man2/sigreturn.2:29 build/C/man3/sigset.3:26 build/C/man3/sigsetops.3:31 build/C/man2/sigsuspend.2:29 build/C/man3/sigvec.3:26 build/C/man3/sigwait.3:26 build/C/man2/sigwaitinfo.2:25 build/C/man2/timer_create.2:31 build/C/man2/timer_delete.2:26 build/C/man2/timer_getoverrun.2:26 build/C/man2/timer_settime.2:26 build/C/man2/timerfd_create.2:21 build/C/man2/tkill.2:29 build/C/man2/wait.2:49 build/C/man2/wait4.2:33
#, no-wrap
msgid "Linux"
msgstr ""
#. type: Plain text
-#: build/C/man2/eventfd.2:24
+#: build/C/man2/eventfd.2:25
msgid "eventfd - create a file descriptor for event notification"
msgstr ""
#. type: Plain text
-#: build/C/man2/eventfd.2:26
+#: build/C/man2/eventfd.2:27
msgid "B<#include E<lt>sys/eventfd.hE<gt>>"
msgstr ""
#. type: Plain text
-#: build/C/man2/eventfd.2:28
+#: build/C/man2/eventfd.2:29
msgid "B<int eventfd(unsigned int >I<initval>B<, int >I<flags>B<);>"
msgstr ""
#. type: Plain text
-#: build/C/man2/eventfd.2:38
+#: build/C/man2/eventfd.2:39
msgid ""
"B<eventfd>() creates an \"eventfd object\" that can be used as an event "
-"wait/notify mechanism by userspace applications, and by the kernel to notify "
-"userspace applications of events. The object contains an unsigned 64-bit "
-"integer (I<uint64_t>) counter that is maintained by the kernel. This "
-"counter is initialized with the value specified in the argument I<initval>."
+"wait/notify mechanism by user-space applications, and by the kernel to "
+"notify user-space applications of events. The object contains an unsigned "
+"64-bit integer (I<uint64_t>) counter that is maintained by the kernel. "
+"This counter is initialized with the value specified in the argument "
+"I<initval>."
msgstr ""
#. type: Plain text
-#: build/C/man2/eventfd.2:43
+#: build/C/man2/eventfd.2:44
msgid ""
"The following values may be bitwise ORed in I<flags> to change the behaviour "
"of B<eventfd>():"
msgstr ""
#. type: TP
-#: build/C/man2/eventfd.2:43
+#: build/C/man2/eventfd.2:44
#, no-wrap
msgid "B<EFD_CLOEXEC> (since Linux 2.6.27)"
msgstr ""
#. type: Plain text
-#: build/C/man2/eventfd.2:53 build/C/man2/signalfd.2:94 build/C/man2/timerfd_create.2:102
+#: build/C/man2/eventfd.2:54 build/C/man2/signalfd.2:95 build/C/man2/timerfd_create.2:103
msgid ""
"Set the close-on-exec (B<FD_CLOEXEC>) flag on the new file descriptor. See "
"the description of the B<O_CLOEXEC> flag in B<open>(2) for reasons why this "
msgstr ""
#. type: TP
-#: build/C/man2/eventfd.2:53
+#: build/C/man2/eventfd.2:54
#, no-wrap
msgid "B<EFD_NONBLOCK> (since Linux 2.6.27)"
msgstr ""
#. type: Plain text
-#: build/C/man2/eventfd.2:61 build/C/man2/signalfd.2:84 build/C/man2/timerfd_create.2:92
+#: build/C/man2/eventfd.2:62 build/C/man2/signalfd.2:85 build/C/man2/timerfd_create.2:93
msgid ""
"Set the B<O_NONBLOCK> file status flag on the new open file description. "
"Using this flag saves extra calls to B<fcntl>(2) to achieve the same "
msgstr ""
#. type: TP
-#: build/C/man2/eventfd.2:61
+#: build/C/man2/eventfd.2:62
#, no-wrap
msgid "B<EFD_SEMAPHORE> (since Linux 2.6.30)"
msgstr ""
#. type: Plain text
-#: build/C/man2/eventfd.2:65
+#: build/C/man2/eventfd.2:66
msgid ""
"Provide semaphore-like semantics for reads from the new file descriptor. "
"See below."
msgstr ""
#. type: Plain text
-#: build/C/man2/eventfd.2:69 build/C/man2/signalfd.2:98
+#: build/C/man2/eventfd.2:70 build/C/man2/signalfd.2:99
msgid ""
"In Linux up to version 2.6.26, the I<flags> argument is unused, and must be "
"specified as zero."
msgstr ""
#. type: Plain text
-#: build/C/man2/eventfd.2:75
+#: build/C/man2/eventfd.2:76
msgid ""
"As its return value, B<eventfd>() returns a new file descriptor that can be "
"used to refer to the eventfd object. The following operations can be "
msgstr ""
#. type: TP
-#: build/C/man2/eventfd.2:75 build/C/man2/signalfd.2:101 build/C/man2/timerfd_create.2:210
+#: build/C/man2/eventfd.2:76 build/C/man2/signalfd.2:102 build/C/man2/timerfd_create.2:211
#, no-wrap
msgid "B<read>(2)"
msgstr ""
#. type: Plain text
-#: build/C/man2/eventfd.2:85
+#: build/C/man2/eventfd.2:86
msgid ""
"Each successful B<read>(2) returns an 8-byte integer. A B<read>(2) will "
"fail with the error B<EINVAL> if the size of the supplied buffer is less "
msgstr ""
#. type: Plain text
-#: build/C/man2/eventfd.2:90
+#: build/C/man2/eventfd.2:91
msgid ""
"The value returned by B<read>(2) is in host byte order, i.e., the native "
"byte order for integers on the host machine."
msgstr ""
#. type: Plain text
-#: build/C/man2/eventfd.2:97
+#: build/C/man2/eventfd.2:98
msgid ""
"The semantics of B<read>(2) depend on whether the eventfd counter currently "
"has a nonzero value and whether the B<EFD_SEMAPHORE> flag was specified when "
msgstr ""
#. type: IP
-#: build/C/man2/eventfd.2:98 build/C/man2/eventfd.2:105 build/C/man2/eventfd.2:112 build/C/man2/eventfd.2:157 build/C/man2/eventfd.2:167 build/C/man2/eventfd.2:177 build/C/man2/prctl.2:606 build/C/man2/prctl.2:611 build/C/man2/prctl.2:616 build/C/man2/prctl.2:626 build/C/man3/psignal.3:103 build/C/man3/psignal.3:107 build/C/man2/sigaction.2:294 build/C/man2/sigaction.2:309 build/C/man2/sigaction.2:325 build/C/man2/sigaction.2:340 build/C/man2/sigaction.2:387 build/C/man2/sigaction.2:423 build/C/man2/signal.2:66 build/C/man2/signal.2:71 build/C/man2/signal.2:78 build/C/man2/signal.2:206 build/C/man2/signal.2:210 build/C/man2/signal.2:249 build/C/man7/signal.7:147 build/C/man7/signal.7:155 build/C/man7/signal.7:613 build/C/man7/signal.7:615 build/C/man7/signal.7:636 build/C/man7/signal.7:651 build/C/man7/signal.7:655 build/C/man7/signal.7:662 build/C/man7/signal.7:678 build/C/man7/signal.7:684 build/C/man7/signal.7:691 build/C/man7/signal.7:696 build/C/man7/signal.7:715 build/C/man7/signal.7:734 build/C/man7/signal.7:741 build/C/man7/signal.7:750 build/C/man7/signal.7:758 build/C/man7/signal.7:764 build/C/man7/signal.7:769 build/C/man7/signal.7:789 build/C/man7/signal.7:808 build/C/man7/signal.7:811 build/C/man7/signal.7:814 build/C/man7/signal.7:817 build/C/man7/signal.7:822 build/C/man7/signal.7:828 build/C/man7/signal.7:832 build/C/man3/sigwait.3:59 build/C/man3/sigwait.3:64 build/C/man2/timer_create.2:214 build/C/man2/timer_create.2:217 build/C/man2/timer_create.2:220 build/C/man2/timer_create.2:224 build/C/man2/timer_create.2:227 build/C/man2/timer_create.2:233 build/C/man2/timer_create.2:237
+#: build/C/man2/eventfd.2:99 build/C/man2/eventfd.2:106 build/C/man2/eventfd.2:113 build/C/man2/eventfd.2:158 build/C/man2/eventfd.2:168 build/C/man2/eventfd.2:178 build/C/man2/prctl.2:827 build/C/man2/prctl.2:832 build/C/man2/prctl.2:837 build/C/man2/prctl.2:847 build/C/man3/psignal.3:105 build/C/man3/psignal.3:109 build/C/man2/sigaction.2:298 build/C/man2/sigaction.2:313 build/C/man2/sigaction.2:329 build/C/man2/sigaction.2:344 build/C/man2/sigaction.2:391 build/C/man2/sigaction.2:427 build/C/man2/signal.2:68 build/C/man2/signal.2:73 build/C/man2/signal.2:80 build/C/man2/signal.2:221 build/C/man2/signal.2:225 build/C/man2/signal.2:264 build/C/man7/signal.7:149 build/C/man7/signal.7:157 build/C/man7/signal.7:615 build/C/man7/signal.7:617 build/C/man7/signal.7:638 build/C/man7/signal.7:653 build/C/man7/signal.7:657 build/C/man7/signal.7:664 build/C/man7/signal.7:680 build/C/man7/signal.7:686 build/C/man7/signal.7:693 build/C/man7/signal.7:698 build/C/man7/signal.7:717 build/C/man7/signal.7:736 build/C/man7/signal.7:743 build/C/man7/signal.7:752 build/C/man7/signal.7:760 build/C/man7/signal.7:766 build/C/man7/signal.7:771 build/C/man7/signal.7:791 build/C/man7/signal.7:810 build/C/man7/signal.7:813 build/C/man7/signal.7:816 build/C/man7/signal.7:819 build/C/man7/signal.7:824 build/C/man7/signal.7:830 build/C/man7/signal.7:834 build/C/man3/sigwait.3:62 build/C/man3/sigwait.3:67 build/C/man2/timer_create.2:216 build/C/man2/timer_create.2:219 build/C/man2/timer_create.2:222 build/C/man2/timer_create.2:226 build/C/man2/timer_create.2:229 build/C/man2/timer_create.2:235 build/C/man2/timer_create.2:239
#, no-wrap
msgid "*"
msgstr ""
#. type: Plain text
-#: build/C/man2/eventfd.2:105
+#: build/C/man2/eventfd.2:106
msgid ""
"If B<EFD_SEMAPHORE> was not specified and the eventfd counter has a nonzero "
"value, then a B<read>(2) returns 8 bytes containing that value, and the "
msgstr ""
#. type: Plain text
-#: build/C/man2/eventfd.2:112
+#: build/C/man2/eventfd.2:113
msgid ""
"If B<EFD_SEMAPHORE> was specified and the eventfd counter has a nonzero "
"value, then a B<read>(2) returns 8 bytes containing the value 1, and the "
msgstr ""
#. type: Plain text
-#: build/C/man2/eventfd.2:122
+#: build/C/man2/eventfd.2:123
msgid ""
"If the eventfd counter is zero at the time of the call to B<read>(2), then "
"the call either blocks until the counter becomes nonzero (at which time, the "
msgstr ""
#. type: TP
-#: build/C/man2/eventfd.2:123
+#: build/C/man2/eventfd.2:124
#, no-wrap
msgid "B<write>(2)"
msgstr ""
#. type: Plain text
-#: build/C/man2/eventfd.2:140
+#: build/C/man2/eventfd.2:141
msgid ""
"A B<write>(2) call adds the 8-byte integer value supplied in its buffer to "
"the counter. The maximum value that may be stored in the counter is the "
msgstr ""
#. type: Plain text
-#: build/C/man2/eventfd.2:147
+#: build/C/man2/eventfd.2:148
msgid ""
"A B<write>(2) will fail with the error B<EINVAL> if the size of the "
"supplied buffer is less than 8 bytes, or if an attempt is made to write the "
msgstr ""
#. type: TP
-#: build/C/man2/eventfd.2:147 build/C/man2/signalfd.2:139 build/C/man2/timerfd_create.2:243
+#: build/C/man2/eventfd.2:148 build/C/man2/signalfd.2:140 build/C/man2/timerfd_create.2:244
#, no-wrap
msgid "B<poll>(2), B<select>(2) (and similar)"
msgstr ""
#. type: Plain text
-#: build/C/man2/eventfd.2:156
+#: build/C/man2/eventfd.2:157
msgid ""
"The returned file descriptor supports B<poll>(2) (and analogously "
"B<epoll>(7)) and B<select>(2), as follows:"
msgstr ""
#. type: Plain text
-#: build/C/man2/eventfd.2:167
+#: build/C/man2/eventfd.2:168
msgid ""
"The file descriptor is readable (the B<select>(2) I<readfds> argument; the "
"B<poll>(2) B<POLLIN> flag) if the counter has a value greater than 0."
msgstr ""
#. type: Plain text
-#: build/C/man2/eventfd.2:177
+#: build/C/man2/eventfd.2:178
msgid ""
"The file descriptor is writable (the B<select>(2) I<writefds> argument; the "
"B<poll>(2) B<POLLOUT> flag) if it is possible to write a value of at least "
msgstr ""
#. type: Plain text
-#: build/C/man2/eventfd.2:197
+#: build/C/man2/eventfd.2:198
msgid ""
"If an overflow of the counter value was detected, then B<select>(2) "
"indicates the file descriptor as being both readable and writable, and "
#: build/C/man2/eventfd.2:205
msgid ""
"The eventfd file descriptor also supports the other file-descriptor "
-"multiplexing APIs: B<pselect>(2), B<ppoll>(2), and B<epoll>(7)."
+"multiplexing APIs: B<pselect>(2) and B<ppoll>(2)."
msgstr ""
#. type: TP
-#: build/C/man2/eventfd.2:205 build/C/man2/signalfd.2:159 build/C/man2/timerfd_create.2:261
+#: build/C/man2/eventfd.2:205 build/C/man2/signalfd.2:160 build/C/man2/timerfd_create.2:262
#, no-wrap
msgid "B<close>(2)"
msgstr ""
msgstr ""
#. type: TP
-#: build/C/man2/eventfd.2:230 build/C/man2/getitimer.2:130 build/C/man2/kill.2:105 build/C/man2/killpg.2:94 build/C/man2/prctl.2:568 build/C/man2/prctl.2:573 build/C/man2/prctl.2:585 build/C/man2/prctl.2:590 build/C/man2/prctl.2:599 build/C/man2/rt_sigqueueinfo.2:136 build/C/man2/sigaction.2:664 build/C/man2/sigaltstack.2:140 build/C/man3/siginterrupt.3:77 build/C/man2/signal.2:101 build/C/man2/signalfd.2:268 build/C/man2/signalfd.2:276 build/C/man2/sigprocmask.2:102 build/C/man3/sigqueue.3:96 build/C/man3/sigsetops.3:122 build/C/man3/sigwait.3:72 build/C/man2/sigwaitinfo.2:125 build/C/man2/timer_create.2:177 build/C/man2/timer_delete.2:58 build/C/man2/timer_getoverrun.2:88 build/C/man2/timer_settime.2:187 build/C/man2/timer_settime.2:195 build/C/man2/timerfd_create.2:304 build/C/man2/timerfd_create.2:312 build/C/man2/timerfd_create.2:348 build/C/man2/timerfd_create.2:355 build/C/man2/timerfd_create.2:361 build/C/man2/tkill.2:74 build/C/man2/wait.2:416
+#: build/C/man2/eventfd.2:230 build/C/man2/getitimer.2:135 build/C/man2/kill.2:105 build/C/man2/killpg.2:95 build/C/man2/prctl.2:789 build/C/man2/prctl.2:794 build/C/man2/prctl.2:806 build/C/man2/prctl.2:811 build/C/man2/prctl.2:820 build/C/man2/prctl.2:860 build/C/man2/rt_sigqueueinfo.2:141 build/C/man2/s390_runtime_instr.2:67 build/C/man2/sigaction.2:668 build/C/man2/sigaltstack.2:142 build/C/man3/siginterrupt.3:79 build/C/man2/signal.2:103 build/C/man2/signalfd.2:271 build/C/man2/signalfd.2:279 build/C/man2/sigprocmask.2:104 build/C/man3/sigqueue.3:98 build/C/man3/sigsetops.3:124 build/C/man3/sigwait.3:75 build/C/man2/sigwaitinfo.2:129 build/C/man2/timer_create.2:179 build/C/man2/timer_delete.2:61 build/C/man2/timer_getoverrun.2:91 build/C/man2/timer_settime.2:191 build/C/man2/timer_settime.2:199 build/C/man2/timerfd_create.2:305 build/C/man2/timerfd_create.2:313 build/C/man2/timerfd_create.2:349 build/C/man2/timerfd_create.2:356 build/C/man2/timerfd_create.2:362 build/C/man2/tkill.2:100 build/C/man2/wait.2:415
#, no-wrap
msgid "B<EINVAL>"
msgstr ""
msgstr ""
#. type: TP
-#: build/C/man2/eventfd.2:234 build/C/man2/signalfd.2:283 build/C/man2/timerfd_create.2:319
+#: build/C/man2/eventfd.2:234 build/C/man2/signalfd.2:286 build/C/man2/timerfd_create.2:320
#, no-wrap
msgid "B<EMFILE>"
msgstr ""
msgstr ""
#. type: TP
-#: build/C/man2/eventfd.2:237 build/C/man2/signalfd.2:286 build/C/man2/timerfd_create.2:322
+#: build/C/man2/eventfd.2:237 build/C/man2/signalfd.2:289 build/C/man2/timerfd_create.2:323
#, no-wrap
msgid "B<ENFILE>"
msgstr ""
#. type: Plain text
-#: build/C/man2/eventfd.2:241 build/C/man2/signalfd.2:290 build/C/man2/timerfd_create.2:326
+#: build/C/man2/eventfd.2:241 build/C/man2/signalfd.2:293 build/C/man2/timerfd_create.2:327
msgid "The system-wide limit on the total number of open files has been reached."
msgstr ""
#. type: TP
-#: build/C/man2/eventfd.2:241 build/C/man2/signalfd.2:290 build/C/man2/timerfd_create.2:326
+#: build/C/man2/eventfd.2:241 build/C/man2/signalfd.2:293 build/C/man2/timerfd_create.2:327
#, no-wrap
msgid "B<ENODEV>"
msgstr ""
#. type: Plain text
-#: build/C/man2/eventfd.2:249 build/C/man2/signalfd.2:293 build/C/man2/timerfd_create.2:329
+#: build/C/man2/eventfd.2:249 build/C/man2/signalfd.2:296 build/C/man2/timerfd_create.2:330
msgid "Could not mount (internal) anonymous inode device."
msgstr ""
#. type: TP
-#: build/C/man2/eventfd.2:249 build/C/man2/sigaltstack.2:145 build/C/man2/signalfd.2:293 build/C/man2/timer_create.2:185 build/C/man2/timerfd_create.2:329
+#: build/C/man2/eventfd.2:249 build/C/man2/s390_runtime_instr.2:74 build/C/man2/sigaltstack.2:147 build/C/man2/signalfd.2:296 build/C/man2/timer_create.2:187 build/C/man2/timerfd_create.2:330
#, no-wrap
msgid "B<ENOMEM>"
msgstr ""
msgstr ""
#. type: SH
-#: build/C/man2/eventfd.2:253 build/C/man2/prctl.2:720 build/C/man3/psignal.3:93 build/C/man2/rt_sigqueueinfo.2:164 build/C/man2/signalfd.2:296 build/C/man3/sigqueue.3:110 build/C/man2/timer_create.2:189 build/C/man2/timer_delete.2:62 build/C/man2/timer_getoverrun.2:92 build/C/man2/timer_settime.2:201 build/C/man2/timerfd_create.2:367 build/C/man2/tkill.2:85
+#: build/C/man2/eventfd.2:253 build/C/man2/prctl.2:951 build/C/man3/psignal.3:95 build/C/man2/rt_sigqueueinfo.2:169 build/C/man2/s390_runtime_instr.2:80 build/C/man2/signalfd.2:299 build/C/man3/sigqueue.3:112 build/C/man2/timer_create.2:191 build/C/man2/timer_delete.2:65 build/C/man2/timer_getoverrun.2:95 build/C/man2/timer_settime.2:205 build/C/man2/timerfd_create.2:368 build/C/man2/tkill.2:111
#, no-wrap
msgid "VERSIONS"
msgstr ""
#. type: Plain text
#: build/C/man2/eventfd.2:285
msgid ""
-"When used in the kernel, an eventfd file descriptor can provide a "
-"kernel-userspace bridge allowing, for example, functionalities like KAIO "
+"When used in the kernel, an eventfd file descriptor can provide a bridge "
+"from kernel to user space, allowing, for example, functionalities like KAIO "
"(kernel AIO) to signal to a file descriptor that some operation is "
"complete."
msgstr ""
msgstr ""
#. type: SS
-#: build/C/man2/eventfd.2:302 build/C/man2/signalfd.2:333
+#: build/C/man2/eventfd.2:302 build/C/man2/signalfd.2:336
#, no-wrap
msgid "Underlying Linux system calls"
msgstr ""
msgstr ""
#. type: SH
-#: build/C/man2/eventfd.2:334 build/C/man2/sigaction.2:784 build/C/man2/sigaltstack.2:213 build/C/man2/signalfd.2:357 build/C/man3/sigwait.3:83 build/C/man2/timer_create.2:251 build/C/man2/timer_getoverrun.2:125 build/C/man2/timer_settime.2:205 build/C/man2/timerfd_create.2:372 build/C/man2/wait.2:522
+#: build/C/man2/eventfd.2:334 build/C/man2/sigaction.2:788 build/C/man2/sigaltstack.2:215 build/C/man2/signalfd.2:360 build/C/man3/sigwait.3:86 build/C/man2/timer_create.2:253 build/C/man2/timer_getoverrun.2:128 build/C/man2/timer_settime.2:209 build/C/man2/timerfd_create.2:379 build/C/man2/wait.2:536
#, no-wrap
msgid "EXAMPLE"
msgstr ""
msgstr ""
#. type: SS
-#: build/C/man2/eventfd.2:359 build/C/man2/signalfd.2:380 build/C/man2/timerfd_create.2:400 build/C/man2/wait.2:557
+#: build/C/man2/eventfd.2:359 build/C/man2/signalfd.2:383 build/C/man2/timer_create.2:284 build/C/man2/timerfd_create.2:407 build/C/man2/wait.2:571
#, no-wrap
msgid "Program source"
msgstr ""
msgstr ""
#. type: Plain text
-#: build/C/man2/eventfd.2:370 build/C/man2/signalfd.2:391
+#: build/C/man2/eventfd.2:370 build/C/man2/signalfd.2:394
#, no-wrap
msgid ""
"#define handle_error(msg) \\e\n"
msgstr ""
#. type: TH
-#: build/C/man2/getitimer.2:7
+#: build/C/man2/getitimer.2:12
#, no-wrap
msgid "GETITIMER"
msgstr ""
+#. type: TH
+#: build/C/man2/getitimer.2:12
+#, no-wrap
+msgid "2012-10-01"
+msgstr ""
+
#. type: Plain text
-#: build/C/man2/getitimer.2:10
+#: build/C/man2/getitimer.2:15
msgid "getitimer, setitimer - get or set value of an interval timer"
msgstr ""
#. type: Plain text
-#: build/C/man2/getitimer.2:13
+#: build/C/man2/getitimer.2:18
#, no-wrap
msgid "B<#include E<lt>sys/time.hE<gt>>\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/getitimer.2:15
+#: build/C/man2/getitimer.2:20
#, no-wrap
msgid "B<int getitimer(int >I<which>B<, struct itimerval *>I<curr_value>B<);>\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/getitimer.2:18
+#: build/C/man2/getitimer.2:23
#, no-wrap
msgid ""
"B<int setitimer(int >I<which>B<, const struct itimerval *>I<new_value>B<,>\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/getitimer.2:24
+#: build/C/man2/getitimer.2:29
msgid ""
"The system provides each process with three interval timers, each "
"decrementing in a distinct time domain. When any timer expires, a signal is "
msgstr ""
#. type: TP
-#: build/C/man2/getitimer.2:24
+#: build/C/man2/getitimer.2:29
#, no-wrap
msgid "B<ITIMER_REAL>"
msgstr ""
#. type: Plain text
-#: build/C/man2/getitimer.2:29
+#: build/C/man2/getitimer.2:34
msgid "decrements in real time, and delivers B<SIGALRM> upon expiration."
msgstr ""
#. type: TP
-#: build/C/man2/getitimer.2:29
+#: build/C/man2/getitimer.2:34
#, no-wrap
msgid "B<ITIMER_VIRTUAL>"
msgstr ""
#. type: Plain text
-#: build/C/man2/getitimer.2:34
+#: build/C/man2/getitimer.2:39
msgid ""
"decrements only when the process is executing, and delivers B<SIGVTALRM> "
"upon expiration."
msgstr ""
#. type: TP
-#: build/C/man2/getitimer.2:34
+#: build/C/man2/getitimer.2:39
#, no-wrap
msgid "B<ITIMER_PROF>"
msgstr ""
#. type: Plain text
-#: build/C/man2/getitimer.2:44
+#: build/C/man2/getitimer.2:49
msgid ""
"decrements both when the process executes and when the system is executing "
"on behalf of the process. Coupled with B<ITIMER_VIRTUAL>, this timer is "
msgstr ""
#. type: Plain text
-#: build/C/man2/getitimer.2:46
+#: build/C/man2/getitimer.2:51
msgid "Timer values are defined by the following structures:"
msgstr ""
#. type: Plain text
-#: build/C/man2/getitimer.2:54
+#: build/C/man2/getitimer.2:59
#, no-wrap
msgid ""
"struct itimerval {\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/getitimer.2:59
+#: build/C/man2/getitimer.2:64
#, no-wrap
msgid ""
"struct timeval {\n"
-" long tv_sec; /* seconds */\n"
-" long tv_usec; /* microseconds */\n"
+" time_t tv_sec; /* seconds */\n"
+" suseconds_t tv_usec; /* microseconds */\n"
"};\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/getitimer.2:81
+#: build/C/man2/getitimer.2:86
msgid ""
"The function B<getitimer>() fills the structure pointed to by I<curr_value> "
"with the current setting for the timer specified by I<which> (one of "
msgstr ""
#. type: Plain text
-#: build/C/man2/getitimer.2:89
+#: build/C/man2/getitimer.2:94
msgid ""
"The function B<setitimer>() sets the specified timer to the value in "
"I<new_value>. If I<old_value> is non-NULL, the old value of the timer is "
msgstr ""
#. type: Plain text
-#: build/C/man2/getitimer.2:99
+#: build/C/man2/getitimer.2:104
msgid ""
"Timers decrement from I<it_value> to zero, generate a signal, and reset to "
"I<it_interval>. A timer which is set to zero (I<it_value> is zero or the "
msgstr ""
#. type: Plain text
-#: build/C/man2/getitimer.2:105
+#: build/C/man2/getitimer.2:110
msgid ""
"Both I<tv_sec> and I<tv_usec> are significant in determining the duration of "
"a timer."
msgstr ""
#. type: Plain text
-#: build/C/man2/getitimer.2:117
+#: build/C/man2/getitimer.2:122
msgid ""
"Timers will never expire before the requested time, but may expire some "
"(short) time afterward, which depends on the system timer resolution and on "
msgstr ""
#. type: Plain text
-#: build/C/man2/getitimer.2:122 build/C/man2/killpg.2:93 build/C/man2/tkill.2:73
+#: build/C/man2/getitimer.2:127 build/C/man2/killpg.2:94 build/C/man2/tkill.2:99
msgid ""
"On success, zero is returned. On error, -1 is returned, and I<errno> is set "
"appropriately."
msgstr ""
#. type: TP
-#: build/C/man2/getitimer.2:123 build/C/man2/prctl.2:564 build/C/man2/sigaction.2:660 build/C/man2/sigaltstack.2:136 build/C/man2/sigpending.2:55 build/C/man2/sigprocmask.2:95 build/C/man2/sigsuspend.2:73 build/C/man2/timer_settime.2:180 build/C/man2/timerfd_create.2:341
+#: build/C/man2/getitimer.2:128 build/C/man2/prctl.2:785 build/C/man2/sigaction.2:664 build/C/man2/sigaltstack.2:138 build/C/man2/sigpending.2:57 build/C/man2/sigprocmask.2:97 build/C/man2/sigsuspend.2:75 build/C/man2/timer_settime.2:184 build/C/man2/timerfd_create.2:342
#, no-wrap
msgid "B<EFAULT>"
msgstr ""
#. type: Plain text
-#: build/C/man2/getitimer.2:130 build/C/man2/timerfd_create.2:348
+#: build/C/man2/getitimer.2:135 build/C/man2/timerfd_create.2:349
msgid "I<new_value>, I<old_value>, or I<curr_value> is not valid a pointer."
msgstr ""
#. type: Plain text
-#: build/C/man2/getitimer.2:143
+#: build/C/man2/getitimer.2:148
msgid ""
"I<which> is not one of B<ITIMER_REAL>, B<ITIMER_VIRTUAL>, or B<ITIMER_PROF>; "
"or (since Linux 2.6.22) one of the I<tv_usec> fields in the structure "
msgstr ""
#. type: Plain text
-#: build/C/man2/getitimer.2:153
+#: build/C/man2/getitimer.2:158
msgid ""
"POSIX.1-2001, SVr4, 4.4BSD (this call first appeared in 4.2BSD). "
"POSIX.1-2008 marks B<getitimer>() and B<setitimer>() obsolete, "
msgstr ""
#. type: Plain text
-#: build/C/man2/getitimer.2:159
+#: build/C/man2/getitimer.2:164
msgid ""
"A child created via B<fork>(2) does not inherit its parent's interval "
"timers. Interval timers are preserved across an B<execve>(2)."
msgstr ""
#. type: Plain text
-#: build/C/man2/getitimer.2:169
+#: build/C/man2/getitimer.2:174
msgid ""
"POSIX.1 leaves the interaction between B<setitimer>() and the three "
"interfaces B<alarm>(2), B<sleep>(3), and B<usleep>(3) unspecified."
msgstr ""
+#. type: Plain text
+#: build/C/man2/getitimer.2:176
+msgid "The standards are silent on the meaning of the call:"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/getitimer.2:178
+#, no-wrap
+msgid " setitimer(which, NULL, &old_value);\n"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/getitimer.2:181
+msgid ""
+"Many systems (Solaris, the BSDs, and perhaps others) treat this as "
+"equivalent to:"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/getitimer.2:183
+#, no-wrap
+msgid " getitimer(which, &old_value);\n"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/getitimer.2:189
+msgid ""
+"In Linux, this is treated as being equivalent to a call in which the "
+"I<new_value> fields are zero; that is, the timer is disabled. I<Don't use "
+"this Linux misfeature>: it is nonportable and unnecessary."
+msgstr ""
+
#. type: SH
-#: build/C/man2/getitimer.2:169 build/C/man2/kill.2:160 build/C/man3/profil.3:70 build/C/man3/psignal.3:99 build/C/man2/sigaction.2:775 build/C/man2/signalfd.2:349 build/C/man2/sigpending.2:76 build/C/man3/sigset.3:230 build/C/man2/timer_getoverrun.2:112 build/C/man2/timerfd_create.2:534
+#: build/C/man2/getitimer.2:189 build/C/man2/kill.2:160 build/C/man3/profil.3:70 build/C/man3/psignal.3:101 build/C/man2/sigaction.2:779 build/C/man2/signalfd.2:352 build/C/man2/sigpending.2:78 build/C/man3/sigset.3:232 build/C/man2/timer_getoverrun.2:115 build/C/man2/timerfd_create.2:373 build/C/man2/wait.2:521
#, no-wrap
msgid "BUGS"
msgstr ""
#. type: Plain text
-#: build/C/man2/getitimer.2:178
+#: build/C/man2/getitimer.2:198
msgid ""
"The generation and delivery of a signal are distinct, and only one instance "
"of each of the signals listed above may be pending for a process. Under "
msgstr ""
#. type: Plain text
-#: build/C/man2/getitimer.2:193
+#: build/C/man2/getitimer.2:213
msgid ""
"On Linux kernels before 2.6.16, timer values are represented in jiffies. If "
"a request is made set a timer with a value whose jiffies representation "
#. 4 Jul 2005: It looks like this bug may remain in 2.4.x.
#. http://lkml.org/lkml/2005/7/1/165
#. type: Plain text
-#: build/C/man2/getitimer.2:200
+#: build/C/man2/getitimer.2:220
msgid ""
"On certain systems (including i386), Linux kernels before version 2.6.12 "
"have a bug which will produce premature timer expirations of up to one jiffy "
#. http://bugzilla.kernel.org/show_bug.cgi?id=6443
#. "setitimer() should reject noncanonical arguments"
#. type: Plain text
-#: build/C/man2/getitimer.2:219
+#: build/C/man2/getitimer.2:239
msgid ""
"POSIX.1-2001 says that B<setitimer>() should fail if a I<tv_usec> value is "
"specified that is outside of the range 0 to 999999. However, in kernels up "
msgstr ""
#. type: Plain text
-#: build/C/man2/getitimer.2:226
+#: build/C/man2/getitimer.2:246
msgid ""
"B<gettimeofday>(2), B<sigaction>(2), B<signal>(2), B<timer_create>(2), "
"B<timerfd_create>(2), B<time>(7)"
msgstr ""
#. type: TH
-#: build/C/man3/gsignal.3:25
+#: build/C/man3/gsignal.3:27
#, no-wrap
msgid "GSIGNAL"
msgstr ""
#. type: TH
-#: build/C/man3/gsignal.3:25 build/C/man3/profil.3:28 build/C/man3/sigvec.3:24
+#: build/C/man3/gsignal.3:27 build/C/man3/profil.3:28
#, no-wrap
msgid "2007-07-26"
msgstr ""
#. type: Plain text
-#: build/C/man3/gsignal.3:28
+#: build/C/man3/gsignal.3:30
msgid "gsignal, ssignal - software signal facility"
msgstr ""
#. type: Plain text
-#: build/C/man3/gsignal.3:31 build/C/man2/kill.2:52 build/C/man3/psignal.3:34 build/C/man3/raise.3:33 build/C/man2/sigaction.2:51 build/C/man3/siginterrupt.3:35 build/C/man3/sigpause.3:29 build/C/man3/sigwait.3:30 build/C/man2/sigwaitinfo.2:29
+#: build/C/man3/gsignal.3:33 build/C/man2/kill.2:52 build/C/man3/psignal.3:36 build/C/man3/raise.3:35 build/C/man2/sigaction.2:53 build/C/man3/siginterrupt.3:37 build/C/man3/sigpause.3:31 build/C/man3/sigwait.3:32 build/C/man2/sigwaitinfo.2:31
#, no-wrap
msgid "B<#include E<lt>signal.hE<gt>>\n"
msgstr ""
#. type: Plain text
-#: build/C/man3/gsignal.3:33
+#: build/C/man3/gsignal.3:35
#, no-wrap
msgid "B<typedef void (*sighandler_t)(int);>\n"
msgstr ""
#. type: Plain text
-#: build/C/man3/gsignal.3:35
+#: build/C/man3/gsignal.3:37
#, no-wrap
msgid "B<int gsignal(int >I<signum>B<);>\n"
msgstr ""
#. type: Plain text
-#: build/C/man3/gsignal.3:37
+#: build/C/man3/gsignal.3:39
#, no-wrap
msgid "B<sighandler_t ssignal(int >I<signum>B<, sighandler_t >I<action>B<);>\n"
msgstr ""
#. type: Plain text
-#: build/C/man3/gsignal.3:42 build/C/man2/kill.2:59 build/C/man2/killpg.2:51 build/C/man3/profil.3:40 build/C/man3/psignal.3:44 build/C/man2/sigaction.2:59 build/C/man2/sigaltstack.2:36 build/C/man3/siginterrupt.3:42 build/C/man2/sigpending.2:38 build/C/man2/sigprocmask.2:39 build/C/man3/sigqueue.3:37 build/C/man3/sigset.3:43 build/C/man3/sigsetops.3:49 build/C/man2/sigsuspend.2:38 build/C/man3/sigvec.3:43 build/C/man3/sigwait.3:37 build/C/man2/sigwaitinfo.2:39 build/C/man2/timer_create.2:46 build/C/man2/timer_delete.2:38 build/C/man2/timer_getoverrun.2:38 build/C/man2/timer_settime.2:42 build/C/man2/wait.2:68 build/C/man2/wait4.2:54
+#: build/C/man3/gsignal.3:44 build/C/man2/kill.2:59 build/C/man2/killpg.2:53 build/C/man3/profil.3:40 build/C/man3/psignal.3:46 build/C/man2/sigaction.2:61 build/C/man2/sigaltstack.2:38 build/C/man3/siginterrupt.3:44 build/C/man2/sigpending.2:40 build/C/man2/sigprocmask.2:41 build/C/man3/sigqueue.3:39 build/C/man3/sigset.3:45 build/C/man3/sigsetops.3:51 build/C/man2/sigsuspend.2:40 build/C/man3/sigvec.3:45 build/C/man3/sigwait.3:39 build/C/man2/sigwaitinfo.2:41 build/C/man2/timer_create.2:48 build/C/man2/timer_delete.2:41 build/C/man2/timer_getoverrun.2:41 build/C/man2/timer_settime.2:45 build/C/man2/wait.2:67 build/C/man2/wait4.2:53
msgid "Feature Test Macro Requirements for glibc (see B<feature_test_macros>(7)):"
msgstr ""
#. type: Plain text
-#: build/C/man3/gsignal.3:47
+#: build/C/man3/gsignal.3:49
msgid "B<gsignal>(), B<ssignal>(): _SVID_SOURCE"
msgstr ""
#. type: Plain text
-#: build/C/man3/gsignal.3:55
+#: build/C/man3/gsignal.3:57
msgid ""
"Don't use these functions under Linux. Due to a historical mistake, under "
"Linux these functions are aliases for B<raise>(3) and B<signal>(2), "
msgstr ""
#. type: Plain text
-#: build/C/man3/gsignal.3:93
+#: build/C/man3/gsignal.3:95
msgid ""
"Elsewhere, on System V-like systems, these functions implement software "
"signaling, entirely independent of the classical B<signal>(2) and "
msgstr ""
#. type: Plain text
-#: build/C/man3/gsignal.3:101
+#: build/C/man3/gsignal.3:103
msgid ""
"These functions are available under AIX, DG/UX, HP-UX, SCO, Solaris, Tru64. "
"They are called obsolete under most of these systems, and are broken under "
msgstr ""
#. type: Plain text
-#: build/C/man3/gsignal.3:105
+#: build/C/man3/gsignal.3:107
msgid "B<kill>(2), B<signal>(2), B<raise>(3)"
msgstr ""
#. type: TH
#: build/C/man2/kill.2:44
#, no-wrap
-msgid "2009-09-15"
+msgid "2013-02-05"
msgstr ""
#. type: Plain text
msgstr ""
#. type: Plain text
-#: build/C/man2/kill.2:99 build/C/man2/killpg.2:88
+#: build/C/man2/kill.2:99 build/C/man2/killpg.2:89
msgid ""
"For a process to have permission to send a signal it must either be "
"privileged (under Linux: have the B<CAP_KILL> capability), or the real or "
msgstr ""
#. type: TP
-#: build/C/man2/kill.2:108 build/C/man2/killpg.2:98 build/C/man2/prctl.2:639 build/C/man2/prctl.2:651 build/C/man2/prctl.2:661 build/C/man2/prctl.2:669 build/C/man2/rt_sigqueueinfo.2:143 build/C/man2/sigaltstack.2:149 build/C/man3/sigqueue.3:100 build/C/man2/tkill.2:77
+#: build/C/man2/kill.2:108 build/C/man2/killpg.2:99 build/C/man2/prctl.2:870 build/C/man2/prctl.2:882 build/C/man2/prctl.2:892 build/C/man2/prctl.2:900 build/C/man2/rt_sigqueueinfo.2:148 build/C/man2/sigaltstack.2:151 build/C/man3/sigqueue.3:102 build/C/man2/tkill.2:103
#, no-wrap
msgid "B<EPERM>"
msgstr ""
#. type: Plain text
-#: build/C/man2/kill.2:112 build/C/man2/killpg.2:102
+#: build/C/man2/kill.2:112 build/C/man2/killpg.2:103
msgid ""
"The process does not have permission to send the signal to any of the target "
"processes."
msgstr ""
#. type: TP
-#: build/C/man2/kill.2:112 build/C/man2/killpg.2:102 build/C/man2/killpg.2:106 build/C/man2/rt_sigqueueinfo.2:151 build/C/man3/sigqueue.3:106 build/C/man2/tkill.2:82
+#: build/C/man2/kill.2:112 build/C/man2/killpg.2:103 build/C/man2/killpg.2:107 build/C/man2/rt_sigqueueinfo.2:156 build/C/man3/sigqueue.3:108 build/C/man2/tkill.2:108
#, no-wrap
msgid "B<ESRCH>"
msgstr ""
msgstr ""
#. type: Plain text
-#: build/C/man2/kill.2:122 build/C/man2/pause.2:59 build/C/man2/wait.2:423
+#: build/C/man2/kill.2:122 build/C/man2/pause.2:59 build/C/man2/wait.2:422
msgid "SVr4, 4.3BSD, POSIX.1-2001."
msgstr ""
msgstr ""
#. type: SS
-#: build/C/man2/kill.2:146 build/C/man3/sigpause.3:75 build/C/man2/wait.2:477
+#: build/C/man2/kill.2:146 build/C/man3/sigpause.3:77 build/C/man2/wait.2:476
#, no-wrap
-msgid "Linux Notes"
+msgid "Linux notes"
msgstr ""
#. In the 0.* kernels things chopped and changed quite
msgid ""
"In 2.6 kernels up to and including 2.6.7, there was a bug that meant that "
"when sending signals to a process group, B<kill>() failed with the error "
-"B<EPERM> if the caller did have permission to send the signal to I<any> "
+"B<EPERM> if the caller did not have permission to send the signal to I<any> "
"(rather than I<all>) of the members of the process group. Notwithstanding "
"this error return, the signal was still delivered to all of the processes "
"for which the caller had permission to signal."
msgstr ""
#. type: TH
-#: build/C/man2/killpg.2:40
+#: build/C/man2/killpg.2:42
#, no-wrap
msgid "KILLPG"
msgstr ""
#. type: TH
-#: build/C/man2/killpg.2:40 build/C/man3/sigset.3:24 build/C/man2/wait4.2:34
+#: build/C/man2/killpg.2:42 build/C/man3/sigset.3:26
#, no-wrap
msgid "2010-09-20"
msgstr ""
#. type: Plain text
-#: build/C/man2/killpg.2:43
+#: build/C/man2/killpg.2:45
msgid "killpg - send signal to a process group"
msgstr ""
#. type: Plain text
-#: build/C/man2/killpg.2:47
+#: build/C/man2/killpg.2:49
msgid "B<int killpg(int >I<pgrp>B<, int >I<sig>B<);>"
msgstr ""
#. type: TP
-#: build/C/man2/killpg.2:54
+#: build/C/man2/killpg.2:55
#, no-wrap
msgid "B<killpg>():"
msgstr ""
#. type: Plain text
-#: build/C/man2/killpg.2:58 build/C/man2/sigaltstack.2:44 build/C/man3/siginterrupt.3:49 build/C/man2/wait4.2:61
+#: build/C/man2/killpg.2:59 build/C/man2/sigaltstack.2:46 build/C/man3/siginterrupt.3:51 build/C/man2/wait4.2:60
msgid ""
"_BSD_SOURCE || _XOPEN_SOURCE\\ E<gt>=\\ 500 || _XOPEN_SOURCE\\ &&\\ "
"_XOPEN_SOURCE_EXTENDED"
msgstr ""
#. type: Plain text
-#: build/C/man2/killpg.2:68
+#: build/C/man2/killpg.2:69
msgid ""
"B<killpg>() sends the signal I<sig> to the process group I<pgrp>. See "
"B<signal>(7) for a list of signals."
msgstr ""
#. type: Plain text
-#: build/C/man2/killpg.2:77
+#: build/C/man2/killpg.2:78
msgid ""
"If I<pgrp> is 0, B<killpg>() sends the signal to the calling process's "
"process group. (POSIX says: If I<pgrp> is less than or equal to 1, the "
msgstr ""
#. type: Plain text
-#: build/C/man2/killpg.2:98
+#: build/C/man2/killpg.2:99
msgid "I<Sig> is not a valid signal number."
msgstr ""
#. type: Plain text
-#: build/C/man2/killpg.2:106
+#: build/C/man2/killpg.2:107
msgid "No process can be found in the process group specified by I<pgrp>."
msgstr ""
#. type: Plain text
-#: build/C/man2/killpg.2:110
+#: build/C/man2/killpg.2:111
msgid ""
"The process group was given as 0 but the sending process does not have a "
"process group."
msgstr ""
#. type: Plain text
-#: build/C/man2/killpg.2:114
+#: build/C/man2/killpg.2:115
msgid ""
"SVr4, 4.4BSD (the B<killpg>() function call first appeared in 4BSD), "
"POSIX.1-2001."
msgstr ""
#. type: Plain text
-#: build/C/man2/killpg.2:128
+#: build/C/man2/killpg.2:129
msgid ""
"There are various differences between the permission checking in BSD-type "
"systems and System V-type systems. See the POSIX rationale for B<kill>(). "
msgstr ""
#. type: Plain text
-#: build/C/man2/killpg.2:133
+#: build/C/man2/killpg.2:134
msgid ""
"On Linux, B<killpg>() is implemented as a library function that makes the "
"call I<kill(-pgrp,\\ sig)>."
msgstr ""
#. type: Plain text
-#: build/C/man2/killpg.2:139
+#: build/C/man2/killpg.2:140
msgid ""
"B<getpgrp>(2), B<kill>(2), B<signal>(2), B<capabilities>(7), "
"B<credentials>(7)"
msgstr ""
#. type: TP
-#: build/C/man2/pause.2:54 build/C/man2/sigsuspend.2:77 build/C/man2/sigwaitinfo.2:119 build/C/man2/wait.2:409
+#: build/C/man2/pause.2:54 build/C/man2/sigsuspend.2:79 build/C/man2/sigwaitinfo.2:123 build/C/man2/wait.2:408
#, no-wrap
msgid "B<EINTR>"
msgstr ""
msgstr ""
#. type: TH
-#: build/C/man2/prctl.2:48
+#: build/C/man2/prctl.2:52
#, no-wrap
msgid "PRCTL"
msgstr ""
#. type: TH
-#: build/C/man2/prctl.2:48
+#: build/C/man2/prctl.2:52
#, no-wrap
-msgid "2012-04-23"
+msgid "2013-02-25"
msgstr ""
#. type: Plain text
-#: build/C/man2/prctl.2:51
+#: build/C/man2/prctl.2:55
msgid "prctl - operations on a process"
msgstr ""
#. type: Plain text
-#: build/C/man2/prctl.2:54
+#: build/C/man2/prctl.2:58
#, no-wrap
msgid "B<#include E<lt>sys/prctl.hE<gt>>\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/prctl.2:57
+#: build/C/man2/prctl.2:61
#, no-wrap
msgid ""
"B<int prctl(int >I<option>B<, unsigned long >I<arg2>B<, unsigned long "
msgstr ""
#. type: Plain text
-#: build/C/man2/prctl.2:64
+#: build/C/man2/prctl.2:68
msgid ""
"B<prctl>() is called with a first argument describing what to do (with "
"values defined in I<E<lt>linux/prctl.hE<gt>>), and further arguments with a "
msgstr ""
#. type: TP
-#: build/C/man2/prctl.2:64
+#: build/C/man2/prctl.2:68
#, no-wrap
msgid "B<PR_CAPBSET_READ> (since Linux 2.6.25)"
msgstr ""
#. type: Plain text
-#: build/C/man2/prctl.2:76
+#: build/C/man2/prctl.2:80
msgid ""
"Return (as the function result) 1 if the capability specified in I<arg2> is "
"in the calling thread's capability bounding set, or 0 if it is not. (The "
msgstr ""
#. type: Plain text
-#: build/C/man2/prctl.2:81
+#: build/C/man2/prctl.2:85
msgid ""
"If the capability specified in I<arg2> is not valid, then the call fails "
"with the error B<EINVAL>."
msgstr ""
#. type: TP
-#: build/C/man2/prctl.2:81
+#: build/C/man2/prctl.2:85
#, no-wrap
msgid "B<PR_CAPBSET_DROP> (since Linux 2.6.25)"
msgstr ""
#. type: Plain text
-#: build/C/man2/prctl.2:90
+#: build/C/man2/prctl.2:94
msgid ""
"If the calling thread has the B<CAP_SETPCAP> capability, then drop the "
"capability specified by I<arg2> from the calling thread's capability "
msgstr ""
#. type: Plain text
-#: build/C/man2/prctl.2:102
+#: build/C/man2/prctl.2:106
msgid ""
"The call fails with the error: B<EPERM> if the calling thread does not have "
"the B<CAP_SETPCAP>; B<EINVAL> if I<arg2> does not represent a valid "
msgstr ""
#. type: TP
-#: build/C/man2/prctl.2:102
+#: build/C/man2/prctl.2:106
+#, no-wrap
+msgid "B<PR_SET_CHILD_SUBREAPER> (since Linux 3.4)"
+msgstr ""
+
+#. commit ebec18a6d3aa1e7d84aab16225e87fd25170ec2b
+#. type: Plain text
+#: build/C/man2/prctl.2:131
+msgid ""
+"If I<arg2> is nonzero, set the \"child subreaper\" attribute of the calling "
+"process; if I<arg2> is zero, unset the attribute. When a process is marked "
+"as a child subreaper, all of the children that it creates, and their "
+"descendants, will be marked as having a subreaper. In effect, a subreaper "
+"fulfills the role of B<init>(1) for its descendant processes. Upon "
+"termination of a process that is orphaned (i.e., its immediate parent has "
+"already terminated) and marked as having a subreaper, the nearest still "
+"living ancestor subreaper will receive a B<SIGCHLD> signal and be able to "
+"B<wait>(2) on the process to discover its termination status."
+msgstr ""
+
+#. type: TP
+#: build/C/man2/prctl.2:131
+#, no-wrap
+msgid "B<PR_GET_CHILD_SUBREAPER> (since Linux 3.4)"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/prctl.2:136
+msgid ""
+"Return the \"child subreaper\" setting of the caller, in the location "
+"pointed to by I<(int\\ *) arg2>."
+msgstr ""
+
+#. type: TP
+#: build/C/man2/prctl.2:136
#, no-wrap
msgid "B<PR_SET_DUMPABLE> (since Linux 2.3.20)"
msgstr ""
#. From: Marcel Holtmann <marcel () holtmann ! org>
#. Date: 2006-07-12 11:12:00
#. type: Plain text
-#: build/C/man2/prctl.2:128
+#: build/C/man2/prctl.2:162
msgid ""
"Set the state of the flag determining whether core dumps are produced for "
-"this process upon delivery of a signal whose default behavior is to produce "
-"a core dump. (Normally this flag is set for a process by default, but it is "
-"cleared when a set-user-ID or set-group-ID program is executed and also by "
-"various system calls that manipulate process UIDs and GIDs). In kernels up "
-"to and including 2.6.12, I<arg2> must be either 0 (process is not dumpable) "
-"or 1 (process is dumpable). Between kernels 2.6.13 and 2.6.17, the value 2 "
-"was also permitted, which caused any binary which normally would not be "
-"dumped to be dumped readable by root only; for security reasons, this "
+"the calling process upon delivery of a signal whose default behavior is to "
+"produce a core dump. (Normally, this flag is set for a process by default, "
+"but it is cleared when a set-user-ID or set-group-ID program is executed and "
+"also by various system calls that manipulate process UIDs and GIDs). In "
+"kernels up to and including 2.6.12, I<arg2> must be either 0 (process is not "
+"dumpable) or 1 (process is dumpable). Between kernels 2.6.13 and 2.6.17, "
+"the value 2 was also permitted, which caused any binary which normally would "
+"not be dumped to be dumped readable by root only; for security reasons, this "
"feature has been removed. (See also the description of "
"I</proc/sys/fs/suid_dumpable> in B<proc>(5).) Processes that are not "
-"dumpable can not be attached via B<ptrace(2)> B<PTRACE_ATTACH>."
+"dumpable can not be attached via B<ptrace>(2) B<PTRACE_ATTACH>."
msgstr ""
#. type: TP
-#: build/C/man2/prctl.2:128
+#: build/C/man2/prctl.2:162
#, no-wrap
msgid "B<PR_GET_DUMPABLE> (since Linux 2.3.20)"
msgstr ""
#. but in 2.6.13 PR_GET_DUMPABLE simply returns 1 if the dumpable
#. flags has a nonzero value. This was fixed in 2.6.14.
#. type: Plain text
-#: build/C/man2/prctl.2:135
+#: build/C/man2/prctl.2:169
msgid ""
"Return (as the function result) the current state of the calling process's "
"dumpable flag."
msgstr ""
#. type: TP
-#: build/C/man2/prctl.2:135
+#: build/C/man2/prctl.2:169
#, no-wrap
msgid "B<PR_SET_ENDIAN> (since Linux 2.6.18, PowerPC only)"
msgstr ""
#. Respectively 0, 1, 2
#. type: Plain text
-#: build/C/man2/prctl.2:145
+#: build/C/man2/prctl.2:179
msgid ""
"Set the endian-ness of the calling process to the value given in I<arg2>, "
"which should be one of the following: B<PR_ENDIAN_BIG>, B<PR_ENDIAN_LITTLE>, "
msgstr ""
#. type: TP
-#: build/C/man2/prctl.2:145
+#: build/C/man2/prctl.2:179
#, no-wrap
msgid "B<PR_GET_ENDIAN> (since Linux 2.6.18, PowerPC only)"
msgstr ""
#. type: Plain text
-#: build/C/man2/prctl.2:150
+#: build/C/man2/prctl.2:184
msgid ""
"Return the endian-ness of the calling process, in the location pointed to by "
"I<(int\\ *) arg2>."
msgstr ""
#. type: TP
-#: build/C/man2/prctl.2:150
+#: build/C/man2/prctl.2:184
#, no-wrap
msgid "B<PR_SET_FPEMU> (since Linux 2.4.18, 2.5.9, only on ia64)"
msgstr ""
#. type: Plain text
-#: build/C/man2/prctl.2:157
+#: build/C/man2/prctl.2:191
msgid ""
"Set floating-point emulation control bits to I<arg2>. Pass "
"B<PR_FPEMU_NOPRINT> to silently emulate fp operations accesses, or "
msgstr ""
#. type: TP
-#: build/C/man2/prctl.2:157
+#: build/C/man2/prctl.2:191
#, no-wrap
msgid "B<PR_GET_FPEMU> (since Linux 2.4.18, 2.5.9, only on ia64)"
msgstr ""
#. type: Plain text
-#: build/C/man2/prctl.2:162
+#: build/C/man2/prctl.2:196
msgid ""
"Return floating-point emulation control bits, in the location pointed to by "
"I<(int\\ *) arg2>."
msgstr ""
#. type: TP
-#: build/C/man2/prctl.2:162
+#: build/C/man2/prctl.2:196
#, no-wrap
msgid "B<PR_SET_FPEXC> (since Linux 2.4.21, 2.5.32, only on PowerPC)"
msgstr ""
#. type: Plain text
-#: build/C/man2/prctl.2:175
+#: build/C/man2/prctl.2:209
msgid ""
"Set floating-point exception mode to I<arg2>. Pass B<PR_FP_EXC_SW_ENABLE> "
"to use FPEXC for FP exception enables, B<PR_FP_EXC_DIV> for floating-point "
msgstr ""
#. type: TP
-#: build/C/man2/prctl.2:175
+#: build/C/man2/prctl.2:209
#, no-wrap
msgid "B<PR_GET_FPEXC> (since Linux 2.4.21, 2.5.32, only on PowerPC)"
msgstr ""
#. type: Plain text
-#: build/C/man2/prctl.2:180
+#: build/C/man2/prctl.2:214
msgid ""
"Return floating-point exception mode, in the location pointed to by I<(int\\ "
"*) arg2>."
msgstr ""
#. type: TP
-#: build/C/man2/prctl.2:180
+#: build/C/man2/prctl.2:214
#, no-wrap
msgid "B<PR_SET_KEEPCAPS> (since Linux 2.2.18)"
msgstr ""
#. type: Plain text
-#: build/C/man2/prctl.2:198
+#: build/C/man2/prctl.2:232
msgid ""
"Set the state of the thread's \"keep capabilities\" flag, which determines "
"whether the threads's permitted capability set is cleared when a change is "
msgstr ""
#. type: TP
-#: build/C/man2/prctl.2:198
+#: build/C/man2/prctl.2:232
#, no-wrap
msgid "B<PR_GET_KEEPCAPS> (since Linux 2.2.18)"
msgstr ""
#. type: Plain text
-#: build/C/man2/prctl.2:202
+#: build/C/man2/prctl.2:236
msgid ""
"Return (as the function result) the current state of the calling threads's "
"\"keep capabilities\" flag."
msgstr ""
#. type: TP
-#: build/C/man2/prctl.2:202
+#: build/C/man2/prctl.2:236
#, no-wrap
msgid "B<PR_SET_NAME> (since Linux 2.6.9)"
msgstr ""
#. TASK_COMM_LEN in include/linux/sched.h
#. type: Plain text
-#: build/C/man2/prctl.2:210
+#: build/C/man2/prctl.2:244
msgid ""
-"Set the process name for the calling process, using the value in the "
-"location pointed to by I<(char\\ *) arg2>. The name can be up to 16 bytes "
-"long, and should be null-terminated if it contains fewer bytes."
+"Set the process name for the calling thread, using the value in the location "
+"pointed to by I<(char\\ *) arg2>. The name can be up to 16 bytes long, and "
+"should be null-terminated if it contains fewer bytes."
msgstr ""
#. type: TP
-#: build/C/man2/prctl.2:210
+#: build/C/man2/prctl.2:244
#, no-wrap
msgid "B<PR_GET_NAME> (since Linux 2.6.11)"
msgstr ""
#. type: Plain text
-#: build/C/man2/prctl.2:217
+#: build/C/man2/prctl.2:251
msgid ""
-"Return the process name for the calling process, in the buffer pointed to by "
+"Return the name for the calling thread, in the buffer pointed to by "
"I<(char\\ *) arg2>. The buffer should allow space for up to 16 bytes; the "
"returned string will be null-terminated if it is shorter than that."
msgstr ""
#. type: TP
-#: build/C/man2/prctl.2:217
+#: build/C/man2/prctl.2:251
+#, no-wrap
+msgid "B<PR_SET_NO_NEW_PRIVS> (since Linux 3.5)"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/prctl.2:274
+msgid ""
+"Set the calling process's I<no_new_privs> bit to the value in I<arg2>. With "
+"I<no_new_privs> set to 1, B<execve>(2) promises not to grant privileges to "
+"do anything that could not have been done without the B<execve>(2) call "
+"(for example, rendering the set-user-ID and set-group-ID permission bits, "
+"and file capabilities non-functional). Once set, this bit cannot be unset. "
+"The setting of this bit is inherited by children created by B<fork>(2) and "
+"B<clone>(2), and preserved across B<execve>(2)."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/prctl.2:277
+msgid ""
+"For more information, see the kernel source file "
+"I<Documentation/prctl/no_new_privs.txt>."
+msgstr ""
+
+#. type: TP
+#: build/C/man2/prctl.2:277
+#, no-wrap
+msgid "B<PR_GET_NO_NEW_PRIVS> (since Linux 3.5)"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/prctl.2:288
+msgid ""
+"Return the value of the I<no_new_privs> bit for the current process. A "
+"value of 0 indicates the regular B<execve>(2) behavior. A value of 1 "
+"indicates B<execve>(2) will operate in the privilege-restricting mode "
+"described above."
+msgstr ""
+
+#. type: TP
+#: build/C/man2/prctl.2:288
#, no-wrap
msgid "B<PR_SET_PDEATHSIG> (since Linux 2.1.57)"
msgstr ""
#. type: Plain text
-#: build/C/man2/prctl.2:228
+#: build/C/man2/prctl.2:299
msgid ""
"Set the parent process death signal of the calling process to I<arg2> "
"(either a signal value in the range 1..maxsig, or 0 to clear). This is the "
"signal that the calling process will get when its parent dies. This value "
-"is cleared for the child of a B<fork>(2) and (since Linux 2.5.36 / 2.6.23) "
-"when executing a set-user_ID or set-group-ID binary."
+"is cleared for the child of a B<fork>(2) and (since Linux 2.4.36 / 2.6.23) "
+"when executing a set-user-ID or set-group-ID binary."
msgstr ""
#. type: TP
-#: build/C/man2/prctl.2:228
+#: build/C/man2/prctl.2:299
#, no-wrap
msgid "B<PR_GET_PDEATHSIG> (since Linux 2.3.15)"
msgstr ""
#. type: Plain text
-#: build/C/man2/prctl.2:233
+#: build/C/man2/prctl.2:304
msgid ""
"Return the current value of the parent process death signal, in the location "
"pointed to by I<(int\\ *) arg2>."
msgstr ""
#. type: TP
-#: build/C/man2/prctl.2:233
+#: build/C/man2/prctl.2:304
+#, no-wrap
+msgid "B<PR_SET_PTRACER> (since Linux 3.4)"
+msgstr ""
+
+#. commit 2d514487faf188938a4ee4fb3464eeecfbdcf8eb
+#. commit bf06189e4d14641c0148bea16e9dd24943862215
+#. type: Plain text
+#: build/C/man2/prctl.2:329
+msgid ""
+"This is only meaningful when the Yama LSM is enabled and in mode 1 "
+"(\"restricted ptrace\", visible via I</proc/sys/kernel/yama/ptrace_scope>). "
+"When a \"ptracer process ID\" is passed in I<arg2>, the caller is declaring "
+"that the ptracer process can B<ptrace>(2) the calling process as if it were "
+"a direct process ancestor. Each B<PR_SET_PTRACER> operation replaces the "
+"previous \"ptracer process ID\". Employing B<PR_SET_PTRACER> with I<arg2> "
+"set to 0 clears the caller's \"ptracer process ID\". If I<arg2> is "
+"B<PR_SET_PTRACER_ANY,> the ptrace restrictions introduced by Yama are "
+"effectively disabled for the calling process."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/prctl.2:332
+msgid ""
+"For further information, see the kernel source file "
+"I<Documentation/security/Yama.txt>."
+msgstr ""
+
+#. type: TP
+#: build/C/man2/prctl.2:332
#, no-wrap
msgid "B<PR_SET_SECCOMP> (since Linux 2.6.23)"
msgstr ""
#. [PATCH 0 of 2] seccomp updates
#. andrea@cpushare.com
#. type: Plain text
-#: build/C/man2/prctl.2:257
+#: build/C/man2/prctl.2:343
msgid ""
-"Set the secure computing mode for the calling thread. In the current "
-"implementation, I<arg2> must be 1. After the secure computing mode has been "
-"set to 1, the only system calls that the thread is permitted to make are "
-"B<read>(2), B<write>(2), B<_exit>(2), and B<sigreturn>(2). Other system "
-"calls result in the delivery of a B<SIGKILL> signal. Secure computing mode "
-"is useful for number-crunching applications that may need to execute "
-"untrusted byte code, perhaps obtained by reading from a pipe or socket. "
-"This operation is only available if the kernel is configured with "
-"CONFIG_SECCOMP enabled."
+"Set the secure computing (seccomp) mode for the calling thread, to limit the "
+"available system calls. The seccomp mode is selected via I<arg2>. (The "
+"seccomp constants are defined in I<E<lt>linux/seccomp.hE<gt>>.)"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/prctl.2:364
+msgid ""
+"With I<arg2> set to B<SECCOMP_MODE_STRICT> the only system calls that the "
+"thread is permitted to make are B<read>(2), B<write>(2), B<_exit>(2), and "
+"B<sigreturn>(2). Other system calls result in the delivery of a B<SIGKILL> "
+"signal. Strict secure computing mode is useful for number-crunching "
+"applications that may need to execute untrusted byte code, perhaps obtained "
+"by reading from a pipe or socket. This operation is only available if the "
+"kernel is configured with B<CONFIG_SECCOMP> enabled."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/prctl.2:379
+msgid ""
+"With I<arg2> set to B<SECCOMP_MODE_FILTER> (since Linux 3.5) the system "
+"calls allowed are defined by a pointer to a Berkeley Packet Filter passed in "
+"I<arg3>. This argument is a pointer to I<struct sock_fprog>; it can be "
+"designed to filter arbitrary system calls and system call arguments. This "
+"mode is only available if the kernel is configured with "
+"B<CONFIG_SECCOMP_FILTER> enabled."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/prctl.2:394
+msgid ""
+"If B<SECCOMP_MODE_FILTER> filters permit B<fork>(2), then the seccomp mode "
+"is inherited by children created by B<fork>(2); if B<execve>(2) is "
+"permitted, then the seccomp mode is preserved across B<execve>(2). If the "
+"filters permit B<prctl>() calls, then additional filters can be added; they "
+"are run in order until the first non-allow result is seen."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/prctl.2:397
+msgid ""
+"For further information, see the kernel source file "
+"I<Documentation/prctl/seccomp_filter.txt>."
msgstr ""
#. type: TP
-#: build/C/man2/prctl.2:257
+#: build/C/man2/prctl.2:397
#, no-wrap
msgid "B<PR_GET_SECCOMP> (since Linux 2.6.23)"
msgstr ""
#. type: Plain text
-#: build/C/man2/prctl.2:270
+#: build/C/man2/prctl.2:412
msgid ""
-"Return the secure computing mode of the calling thread. Not very useful for "
-"the current implementation (mode equals 1), but may be useful for other "
-"possible future modes: if the caller is not in secure computing mode, this "
-"operation returns 0; if the caller is in secure computing mode, then the "
-"B<prctl>() call will cause a B<SIGKILL> signal to be sent to the process. "
+"Return the secure computing mode of the calling thread. If the caller is "
+"not in secure computing mode, this operation returns 0; if the caller is in "
+"strict secure computing mode, then the B<prctl>() call will cause a "
+"B<SIGKILL> signal to be sent to the process. If the caller is in filter "
+"mode, and this system call is allowed by the seccomp filters, it returns 2. "
"This operation is only available if the kernel is configured with "
-"CONFIG_SECCOMP enabled."
+"B<CONFIG_SECCOMP> enabled."
msgstr ""
#. type: TP
-#: build/C/man2/prctl.2:270
+#: build/C/man2/prctl.2:412
#, no-wrap
msgid "B<PR_SET_SECUREBITS> (since Linux 2.6.26)"
msgstr ""
#. type: Plain text
-#: build/C/man2/prctl.2:276
+#: build/C/man2/prctl.2:418
msgid ""
"Set the \"securebits\" flags of the calling thread to the value supplied in "
"I<arg2>. See B<capabilities>(7)."
msgstr ""
#. type: TP
-#: build/C/man2/prctl.2:276
+#: build/C/man2/prctl.2:418
#, no-wrap
msgid "B<PR_GET_SECUREBITS> (since Linux 2.6.26)"
msgstr ""
#. type: Plain text
-#: build/C/man2/prctl.2:282
+#: build/C/man2/prctl.2:424
msgid ""
"Return (as the function result) the \"securebits\" flags of the calling "
"thread. See B<capabilities>(7)."
msgstr ""
#. type: TP
-#: build/C/man2/prctl.2:282
+#: build/C/man2/prctl.2:424
+#, no-wrap
+msgid "B<PR_GET_TID_ADDRESS> (since Linux 3.5)"
+msgstr ""
+
+#. commit 300f786b2683f8bb1ec0afb6e1851183a479c86d
+#. type: Plain text
+#: build/C/man2/prctl.2:439
+msgid ""
+"Retrieve the I<clear_child_tid> address set by B<set_tid_address>(2) and "
+"the B<clone>(2) B<CLONE_CHILD_CLEARTID> flag, in the location pointed to by "
+"I<(int\\ **)\\ arg2>. This feature is available only if the kernel is built "
+"with the B<CONFIG_CHECKPOINT_RESTORE> option enabled."
+msgstr ""
+
+#. type: TP
+#: build/C/man2/prctl.2:439
+#, no-wrap
+msgid "B<PR_SET_TIMERSLACK> (since Linux 2.6.28)"
+msgstr ""
+
+#. See https://lwn.net/Articles/369549/
+#. commit 6976675d94042fbd446231d1bd8b7de71a980ada
+#. It seems that it's not possible to set the timer slack to zero;
+#. The minimum value is 1? Seems a little strange.
+#. type: Plain text
+#: build/C/man2/prctl.2:458
+msgid ""
+"Set the current timer slack for the calling thread to the nanosecond value "
+"supplied in I<arg2>. If I<arg2> is less than or equal to zero, reset the "
+"current timer slack to the thread's default timer slack value. The timer "
+"slack is used by the kernel to group timer expirations for the calling "
+"thread that are close to one another; as a consequence, timer expirations "
+"for the thread may be up to the specified number of nanoseconds late (but "
+"will never expire early). Grouping timer expirations can help reduce system "
+"power consumption by minimizing CPU wake-ups."
+msgstr ""
+
+#. List obtained by grepping for futex usage in glibc source
+#. type: Plain text
+#: build/C/man2/prctl.2:478
+msgid ""
+"The timer expirations affected by timer slack are those set by B<select>(2), "
+"B<pselect>(2), B<poll>(2), B<ppoll>(2), B<epoll_wait>(2), B<epoll_pwait>(2), "
+"B<clock_nanosleep>(2), B<nanosleep>(2), and B<futex>(2) (and thus the "
+"library functions implemented via futexes, including "
+"B<pthread_cond_timedwait>(3), B<pthread_mutex_timedlock>(3), "
+"B<pthread_rwlock_timedrdlock>(3), B<pthread_rwlock_timedwrlock>(3), and "
+"B<sem_timedwait>(3))."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/prctl.2:482
+msgid ""
+"Timer slack is not applied to threads that are scheduled under a realtime "
+"scheduling policy (see B<sched_setscheduler>(2))."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/prctl.2:499
+msgid ""
+"Each thread has two associated timer slack values: a \"default\" value, and "
+"a \"current\" value. The current value is the one that governs grouping of "
+"timer expirations. When a new thread is created, the two timer slack values "
+"are made the same as the current value of the creating thread. Thereafter, "
+"a thread can adjust its current timer slack value via B<PR_SET_TIMERSLACK> "
+"(the default value can't be changed). The timer slack values of I<init> "
+"(PID 1), the ancestor of all processes, are 50,000 nanoseconds (50 "
+"microseconds). The timer slack values are preserved across B<execve>(2)."
+msgstr ""
+
+#. type: TP
+#: build/C/man2/prctl.2:499
+#, no-wrap
+msgid "B<PR_GET_TIMERSLACK> (since Linux 2.6.28)"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/prctl.2:502
+msgid "Return the current timer slack value of the calling thread."
+msgstr ""
+
+#. type: TP
+#: build/C/man2/prctl.2:502
#, no-wrap
msgid "B<PR_SET_TIMING> (since Linux 2.6.0-test4)"
msgstr ""
#. and looking at the patch history, it appears
#. that it never did anything.
#. type: Plain text
-#: build/C/man2/prctl.2:299
+#: build/C/man2/prctl.2:519
msgid ""
"Set whether to use (normal, traditional) statistical process timing or "
"accurate timestamp-based process timing, by passing B<PR_TIMING_STATISTICAL> "
msgstr ""
#. type: TP
-#: build/C/man2/prctl.2:299
+#: build/C/man2/prctl.2:519
#, no-wrap
msgid "B<PR_GET_TIMING> (since Linux 2.6.0-test4)"
msgstr ""
#. type: Plain text
-#: build/C/man2/prctl.2:303
+#: build/C/man2/prctl.2:523
msgid ""
"Return (as the function result) which process timing method is currently in "
"use."
msgstr ""
#. type: TP
-#: build/C/man2/prctl.2:303
+#: build/C/man2/prctl.2:523
#, no-wrap
msgid "B<PR_TASK_PERF_EVENTS_DISABLE> (since Linux 2.6.31)"
msgstr ""
#. type: Plain text
-#: build/C/man2/prctl.2:312
+#: build/C/man2/prctl.2:532
msgid ""
"Disable all performance counters attached to the calling process, regardless "
"of whether the counters were created by this process or another process. "
"Performance counters created by the calling process for other processes are "
-"unaffected. For more information on performance counters, see the kernel "
-"source file I<tools/perf/design.txt>."
+"unaffected. For more information on performance counters, see the Linux "
+"kernel source file I<tools/perf/design.txt>."
msgstr ""
#. commit 1d1c7ddbfab358445a542715551301b7fc363e28
#. type: Plain text
-#: build/C/man2/prctl.2:318
+#: build/C/man2/prctl.2:538
msgid ""
"Originally called B<PR_TASK_PERF_COUNTERS_DISABLE>; renamed (with same "
"numerical value) in Linux 2.6.32."
msgstr ""
#. type: TP
-#: build/C/man2/prctl.2:318
+#: build/C/man2/prctl.2:538
#, no-wrap
msgid "B<PR_TASK_PERF_EVENTS_ENABLE> (since Linux 2.6.31)"
msgstr ""
#. type: Plain text
-#: build/C/man2/prctl.2:323
+#: build/C/man2/prctl.2:543
msgid ""
"The converse of B<PR_TASK_PERF_EVENTS_DISABLE>; enable performance counters "
"attached to the calling process."
#. commit 1d1c7ddbfab358445a542715551301b7fc363e28
#. commit cdd6c482c9ff9c55475ee7392ec8f672eddb7be6
#. type: Plain text
-#: build/C/man2/prctl.2:330
+#: build/C/man2/prctl.2:550
msgid "Originally called B<PR_TASK_PERF_COUNTERS_ENABLE>; renamed in Linux 2.6.32."
msgstr ""
#. type: TP
-#: build/C/man2/prctl.2:330
+#: build/C/man2/prctl.2:550
#, no-wrap
msgid "B<PR_SET_TSC> (since Linux 2.6.26, x86 only)"
msgstr ""
#. type: Plain text
-#: build/C/man2/prctl.2:343
+#: build/C/man2/prctl.2:563
msgid ""
"Set the state of the flag determining whether the timestamp counter can be "
"read by the process. Pass B<PR_TSC_ENABLE> to I<arg2> to allow it to be "
msgstr ""
#. type: TP
-#: build/C/man2/prctl.2:343
+#: build/C/man2/prctl.2:563
#, no-wrap
msgid "B<PR_GET_TSC> (since Linux 2.6.26, x86 only)"
msgstr ""
#. type: Plain text
-#: build/C/man2/prctl.2:349
+#: build/C/man2/prctl.2:569
msgid ""
"Return the state of the flag determining whether the timestamp counter can "
"be read, in the location pointed to by I<(int\\ *) arg2>."
msgstr ""
#. type: TP
-#: build/C/man2/prctl.2:349
+#: build/C/man2/prctl.2:569
#, no-wrap
msgid "B<PR_SET_UNALIGN>"
msgstr ""
#. type: Plain text
-#: build/C/man2/prctl.2:359
+#: build/C/man2/prctl.2:579
msgid ""
"(Only on: ia64, since Linux 2.3.48; parisc, since Linux 2.6.15; PowerPC, "
"since Linux 2.6.18; Alpha, since Linux 2.6.22) Set unaligned access control "
msgstr ""
#. type: TP
-#: build/C/man2/prctl.2:359
+#: build/C/man2/prctl.2:579
#, no-wrap
msgid "B<PR_GET_UNALIGN>"
msgstr ""
#. type: Plain text
-#: build/C/man2/prctl.2:366
+#: build/C/man2/prctl.2:586
msgid ""
"(see B<PR_SET_UNALIGN> for information on versions and architectures) "
"Return unaligned access control bits, in the location pointed to by I<(int\\ "
msgstr ""
#. type: TP
-#: build/C/man2/prctl.2:366
+#: build/C/man2/prctl.2:586
#, no-wrap
msgid "B<PR_MCE_KILL> (since Linux 2.6.32)"
msgstr ""
#. type: Plain text
-#: build/C/man2/prctl.2:406
+#: build/C/man2/prctl.2:626
msgid ""
"Set the machine check memory corruption kill policy for the current thread. "
"If I<arg2> is B<PR_MCE_KILL_CLEAR>, clear the thread memory corruption kill "
msgstr ""
#. type: TP
-#: build/C/man2/prctl.2:406
+#: build/C/man2/prctl.2:626
#, no-wrap
msgid "B<PR_MCE_KILL_GET> (since Linux 2.6.32)"
msgstr ""
#. type: Plain text
-#: build/C/man2/prctl.2:412
+#: build/C/man2/prctl.2:632
msgid ""
"Return the current per-process machine check kill policy. All unused "
"B<prctl>() arguments must be zero."
msgstr ""
#. type: TP
-#: build/C/man2/prctl.2:412
+#: build/C/man2/prctl.2:632
#, no-wrap
msgid "B<PR_SET_MM> (since Linux 3.3)"
msgstr ""
#. type: Plain text
-#: build/C/man2/prctl.2:432
+#: build/C/man2/prctl.2:652
msgid ""
"Modify certain kernel memory map descriptor fields of the calling process. "
"Usually these fields are set by the kernel and dynamic loader (see "
msgstr ""
#. type: TP
-#: build/C/man2/prctl.2:433
+#: build/C/man2/prctl.2:653
#, no-wrap
msgid "B<PR_SET_MM_START_CODE>"
msgstr ""
#. type: Plain text
-#: build/C/man2/prctl.2:442
+#: build/C/man2/prctl.2:662
msgid ""
"Set the address above which the program text can run. The corresponding "
"memory area must be readable and executable, but not writable or sharable "
msgstr ""
#. type: TP
-#: build/C/man2/prctl.2:442
+#: build/C/man2/prctl.2:662
#, no-wrap
msgid "B<PR_SET_MM_END_CODE>"
msgstr ""
#. type: Plain text
-#: build/C/man2/prctl.2:447
+#: build/C/man2/prctl.2:667
msgid ""
"Set the address below which the program text can run. The corresponding "
"memory area must be readable and executable, but not writable or sharable."
msgstr ""
#. type: TP
-#: build/C/man2/prctl.2:447
+#: build/C/man2/prctl.2:667
#, no-wrap
msgid "B<PR_SET_MM_START_DATA>"
msgstr ""
#. type: Plain text
-#: build/C/man2/prctl.2:453
+#: build/C/man2/prctl.2:673
msgid ""
"Set the address above which initialized and uninitialized (bss) data are "
"placed. The corresponding memory area must be readable and writable, but "
msgstr ""
#. type: TP
-#: build/C/man2/prctl.2:453
+#: build/C/man2/prctl.2:673
#, no-wrap
msgid "B<PR_SET_MM_END_DATA>"
msgstr ""
#. type: Plain text
-#: build/C/man2/prctl.2:459
+#: build/C/man2/prctl.2:679
msgid ""
"Set the address below which initialized and uninitialized (bss) data are "
"placed. The corresponding memory area must be readable and writable, but "
msgstr ""
#. type: TP
-#: build/C/man2/prctl.2:459
+#: build/C/man2/prctl.2:679
#, no-wrap
msgid "B<PR_SET_MM_START_STACK>"
msgstr ""
#. type: Plain text
-#: build/C/man2/prctl.2:463
+#: build/C/man2/prctl.2:683
msgid ""
"Set the start address of the stack. The corresponding memory area must be "
"readable and writable."
msgstr ""
#. type: TP
-#: build/C/man2/prctl.2:463
+#: build/C/man2/prctl.2:683
#, no-wrap
msgid "B<PR_SET_MM_START_BRK>"
msgstr ""
#. type: Plain text
-#: build/C/man2/prctl.2:475
+#: build/C/man2/prctl.2:695
msgid ""
"Set the address above which the program heap can be expanded with B<brk>(2) "
"call. The address must be greater than the ending address of the current "
msgstr ""
#. type: TP
-#: build/C/man2/prctl.2:475
+#: build/C/man2/prctl.2:695
#, no-wrap
msgid "B<PR_SET_MM_BRK>"
msgstr ""
#. symbolic-link transitions over all process running in a system.
#. ========== END FIXME
#. type: Plain text
-#: build/C/man2/prctl.2:544
+#: build/C/man2/prctl.2:764
msgid ""
"Set the current B<brk>(2) value. The requirements for the address are the "
"same as for the B<PR_SET_MM_START_BRK> option."
msgstr ""
#. type: Plain text
-#: build/C/man2/prctl.2:563
+#: build/C/man2/prctl.2:784
msgid ""
-"On success, B<PR_GET_DUMPABLE>, B<PR_GET_KEEPCAPS>, B<PR_CAPBSET_READ>, "
-"B<PR_GET_TIMING>, B<PR_GET_SECUREBITS>, B<PR_MCE_KILL_GET>, and (if it "
-"returns) B<PR_GET_SECCOMP> return the nonnegative values described above. "
-"All other I<option> values return 0 on success. On error, -1 is returned, "
-"and I<errno> is set appropriately."
+"On success, B<PR_GET_DUMPABLE>, B<PR_GET_KEEPCAPS>, B<PR_GET_NO_NEW_PRIVS>, "
+"B<PR_CAPBSET_READ>, B<PR_GET_TIMING>, B<PR_GET_SECUREBITS>, "
+"B<PR_MCE_KILL_GET>, and (if it returns) B<PR_GET_SECCOMP> return the "
+"nonnegative values described above. All other I<option> values return 0 on "
+"success. On error, -1 is returned, and I<errno> is set appropriately."
msgstr ""
#. type: Plain text
-#: build/C/man2/prctl.2:568
+#: build/C/man2/prctl.2:789
msgid "I<arg2> is an invalid address."
msgstr ""
#. type: Plain text
-#: build/C/man2/prctl.2:573
+#: build/C/man2/prctl.2:794
msgid "The value of I<option> is not recognized."
msgstr ""
#. type: Plain text
-#: build/C/man2/prctl.2:585
+#: build/C/man2/prctl.2:806
msgid ""
"I<option> is B<PR_MCE_KILL> or B<PR_MCE_KILL_GET> or B<PR_SET_MM>, and "
"unused B<prctl>() arguments were not specified as zero."
msgstr ""
#. type: Plain text
-#: build/C/man2/prctl.2:590
+#: build/C/man2/prctl.2:811
msgid "I<arg2> is not valid value for this I<option>."
msgstr ""
#. type: Plain text
-#: build/C/man2/prctl.2:599
+#: build/C/man2/prctl.2:820
msgid ""
-"I<option> is B<PR_SET_SECCOMP> or B<PR_SET_SECCOMP>, and the kernel was not "
+"I<option> is B<PR_SET_SECCOMP> or B<PR_GET_SECCOMP>, and the kernel was not "
"configured with B<CONFIG_SECCOMP>."
msgstr ""
#. type: Plain text
-#: build/C/man2/prctl.2:605
+#: build/C/man2/prctl.2:826
msgid "I<option> is B<PR_SET_MM>, and one of the following is true"
msgstr ""
#. type: Plain text
-#: build/C/man2/prctl.2:611
+#: build/C/man2/prctl.2:832
msgid "I<arg4> or I<arg5> is nonzero;"
msgstr ""
#. type: Plain text
-#: build/C/man2/prctl.2:616
+#: build/C/man2/prctl.2:837
msgid ""
"I<arg3> is greater than B<TASK_SIZE> (the limit on the size of the user "
"address space for this architecture);"
msgstr ""
#. type: Plain text
-#: build/C/man2/prctl.2:626
+#: build/C/man2/prctl.2:847
msgid ""
"I<arg2> is B<PR_SET_MM_START_CODE>, B<PR_SET_MM_END_CODE>, "
"B<PR_SET_MM_START_DATA>, B<PR_SET_MM_END_DATA>, or B<PR_SET_MM_START_STACK,> "
msgstr ""
#. type: Plain text
-#: build/C/man2/prctl.2:638
+#: build/C/man2/prctl.2:859
msgid ""
"I<arg2> is B<PR_SET_MM_START_BRK> or B<PR_SET_MM_BRK>, and I<arg3> is less "
"than or equal to the end of the data segment or specifies a value that would "
msgstr ""
#. type: Plain text
-#: build/C/man2/prctl.2:651
+#: build/C/man2/prctl.2:870
+msgid ""
+"I<option> is B<PR_SET_PTRACER> and I<arg2> is not 0, B<PR_SET_PTRACER_ANY>, "
+"or the PID of an existing process."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/prctl.2:882
msgid ""
"I<option> is B<PR_SET_SECUREBITS>, and the caller does not have the "
"B<CAP_SETPCAP> capability, or tried to unset a \"locked\" flag, or tried to "
msgstr ""
#. type: Plain text
-#: build/C/man2/prctl.2:661
+#: build/C/man2/prctl.2:892
msgid ""
"I<option> is B<PR_SET_KEEPCAPS>, and the callers's "
"B<SECURE_KEEP_CAPS_LOCKED> flag is set (see B<capabilities>(7))."
msgstr ""
#. type: Plain text
-#: build/C/man2/prctl.2:669
+#: build/C/man2/prctl.2:900
msgid ""
"I<option> is B<PR_CAPBSET_DROP>, and the caller does not have the "
"B<CAP_SETPCAP> capability."
#. .BR PR_SET_SECCOMP ,
#. and secure computing mode is already 1.
#. type: Plain text
-#: build/C/man2/prctl.2:720
+#: build/C/man2/prctl.2:951
msgid ""
"I<option> is B<PR_SET_MM>, and the caller does not have the "
"B<CAP_SYS_RESOURCE> capability."
#. The library interface was added in glibc 2.0.6
#. type: Plain text
-#: build/C/man2/prctl.2:725
+#: build/C/man2/prctl.2:956
msgid "The B<prctl>() system call was introduced in Linux 2.1.57."
msgstr ""
#. type: Plain text
-#: build/C/man2/prctl.2:732
+#: build/C/man2/prctl.2:963
msgid ""
"This call is Linux-specific. IRIX has a B<prctl>() system call (also "
"introduced in Linux 2.1.44 as irix_prctl on the MIPS architecture), with "
msgstr ""
#. type: Plain text
-#: build/C/man2/prctl.2:734
+#: build/C/man2/prctl.2:965
msgid "B<ptrdiff_t prctl(int >I<option>B<, int >I<arg2>B<, int >I<arg3>B<);>"
msgstr ""
#. type: Plain text
-#: build/C/man2/prctl.2:739
+#: build/C/man2/prctl.2:970
msgid ""
"and options to get the maximum number of processes per user, get the maximum "
"number of processors the calling process can use, find out whether a "
msgstr ""
#. type: Plain text
-#: build/C/man2/prctl.2:742
+#: build/C/man2/prctl.2:973
msgid "B<signal>(2), B<core>(5)"
msgstr ""
msgstr ""
#. type: TH
-#: build/C/man3/psignal.3:28
+#: build/C/man3/psignal.3:30
#, no-wrap
msgid "PSIGNAL"
msgstr ""
#. type: TH
-#: build/C/man3/psignal.3:28
+#: build/C/man3/psignal.3:30
#, no-wrap
msgid "2010-10-06"
msgstr ""
#. type: TH
-#: build/C/man3/psignal.3:28 build/C/man3/raise.3:27 build/C/man7/sigevent.7:24
+#: build/C/man3/psignal.3:30 build/C/man3/raise.3:29 build/C/man7/sigevent.7:26
#, no-wrap
msgid "GNU"
msgstr ""
#. type: Plain text
-#: build/C/man3/psignal.3:31
+#: build/C/man3/psignal.3:33
msgid "psignal, psiginfo - print signal message"
msgstr ""
#. type: Plain text
-#: build/C/man3/psignal.3:37
+#: build/C/man3/psignal.3:39
#, no-wrap
msgid ""
"B<void psignal(int >I<sig>B<, const char *>I<s>B<);>\n"
msgstr ""
#. type: Plain text
-#: build/C/man3/psignal.3:39
+#: build/C/man3/psignal.3:41
#, no-wrap
msgid "B<extern const char *const >I<sys_siglist>B<[];>\n"
msgstr ""
#. type: Plain text
-#: build/C/man3/psignal.3:48
+#: build/C/man3/psignal.3:50
msgid "B<psignal>(): _SVID_SOURCE || _BSD_SOURCE"
msgstr ""
#. type: Plain text
-#: build/C/man3/psignal.3:51
+#: build/C/man3/psignal.3:53
msgid ""
"B<psiginfo>(): _XOPEN_SOURCE\\ E<gt>=\\ 700 || _POSIX_C_SOURCE\\ E<gt>=\\ "
"200809L"
msgstr ""
#. type: Plain text
-#: build/C/man3/psignal.3:54
+#: build/C/man3/psignal.3:56
msgid "I<sys_siglist>: _BSD_SOURCE"
msgstr ""
#. type: Plain text
-#: build/C/man3/psignal.3:63
+#: build/C/man3/psignal.3:65
msgid ""
"The B<psignal>() function displays a message on I<stderr> consisting of the "
"string I<s>, a colon, a space, a string describing the signal number I<sig>, "
msgstr ""
#. type: Plain text
-#: build/C/man3/psignal.3:84
+#: build/C/man3/psignal.3:86
msgid ""
"The B<psiginfo>() function is like B<psignal>(), except that it displays "
"information about the signal described by I<pinfo>, which should point to a "
msgstr ""
#. type: Plain text
-#: build/C/man3/psignal.3:87
+#: build/C/man3/psignal.3:89
msgid ""
"The array I<sys_siglist> holds the signal description strings indexed by "
"signal number."
msgstr ""
#. type: Plain text
-#: build/C/man3/psignal.3:93
+#: build/C/man3/psignal.3:95
msgid "The B<psignal>() and B<psiginfo>() functions return no value."
msgstr ""
#. type: Plain text
-#: build/C/man3/psignal.3:97
+#: build/C/man3/psignal.3:99
msgid "The B<psiginfo>() function was added to glibc in version 2.10."
msgstr ""
#. type: Plain text
-#: build/C/man3/psignal.3:99
+#: build/C/man3/psignal.3:101
msgid "POSIX.1-2008, 4.3BSD."
msgstr ""
#. type: Plain text
-#: build/C/man3/psignal.3:103
+#: build/C/man3/psignal.3:105
msgid "In glibc versions up to 2.12, B<psiginfo>() had the following bugs:"
msgstr ""
#. FIXME http://sourceware.org/bugzilla/show_bug.cgi?id=12107
#. Reportedly now fixed; check glibc 2.13
#. type: Plain text
-#: build/C/man3/psignal.3:107
+#: build/C/man3/psignal.3:109
msgid "In some circumstances, a trailing newline is not printed."
msgstr ""
#. FIXME http://sourceware.org/bugzilla/show_bug.cgi?id=12108
#. Reportedly now fixed; check glibc 2.13
#. type: Plain text
-#: build/C/man3/psignal.3:111
+#: build/C/man3/psignal.3:113
msgid "Additional details are not displayed for real-time signals."
msgstr ""
#. type: Plain text
-#: build/C/man3/psignal.3:116
+#: build/C/man3/psignal.3:118
msgid "B<sigaction>(2), B<perror>(3), B<strsignal>(3), B<signal>(7)"
msgstr ""
#. type: TH
-#: build/C/man3/raise.3:27
+#: build/C/man3/raise.3:29
#, no-wrap
msgid "RAISE"
msgstr ""
#. type: TH
-#: build/C/man3/raise.3:27
+#: build/C/man3/raise.3:29
#, no-wrap
msgid "2012-04-20"
msgstr ""
#. type: Plain text
-#: build/C/man3/raise.3:30
+#: build/C/man3/raise.3:32
msgid "raise - send a signal to the caller"
msgstr ""
#. type: Plain text
-#: build/C/man3/raise.3:35
+#: build/C/man3/raise.3:37
#, no-wrap
msgid "B<int raise(int >I<sig>B<);>\n"
msgstr ""
#. type: Plain text
-#: build/C/man3/raise.3:41
+#: build/C/man3/raise.3:43
msgid ""
"The B<raise>() function sends a signal to the calling process or thread. "
"In a single-threaded program it is equivalent to"
msgstr ""
#. type: Plain text
-#: build/C/man3/raise.3:45
+#: build/C/man3/raise.3:47
#, no-wrap
msgid "kill(getpid(), sig);\n"
msgstr ""
#. type: Plain text
-#: build/C/man3/raise.3:49
+#: build/C/man3/raise.3:51
msgid "In a multithreaded program it is equivalent to"
msgstr ""
#. type: Plain text
-#: build/C/man3/raise.3:53
+#: build/C/man3/raise.3:55
#, no-wrap
msgid "pthread_kill(pthread_self(), sig);\n"
msgstr ""
#. type: Plain text
-#: build/C/man3/raise.3:59
+#: build/C/man3/raise.3:61
msgid ""
"If the signal causes a handler to be called, B<raise>() will only return "
"after the signal handler has returned."
msgstr ""
#. type: Plain text
-#: build/C/man3/raise.3:62
+#: build/C/man3/raise.3:64
msgid "B<raise>() returns 0 on success, and nonzero for failure."
msgstr ""
#. type: Plain text
-#: build/C/man3/raise.3:64 build/C/man2/signal.2:107
+#: build/C/man3/raise.3:66 build/C/man2/signal.2:109
msgid "C89, C99, POSIX.1-2001."
msgstr ""
#. 2.3.2 used the obsolete tkill(), if available.
#. type: Plain text
-#: build/C/man3/raise.3:75
+#: build/C/man3/raise.3:77
msgid ""
"Since version 2.3.3, glibc implements B<raise>() by calling B<tgkill>(2), "
"if the kernel supports that system call. Older glibc versions implemented "
msgstr ""
#. type: Plain text
-#: build/C/man3/raise.3:82
+#: build/C/man3/raise.3:84
msgid ""
"B<getpid>(2), B<kill>(2), B<sigaction>(2), B<signal>(2), B<pthread_kill>(3), "
"B<signal>(7)"
msgstr ""
#. type: TH
-#: build/C/man2/rt_sigqueueinfo.2:23
+#: build/C/man2/rt_sigqueueinfo.2:25
#, no-wrap
msgid "RT_SIGQUEUEINFO"
msgstr ""
#. type: TH
-#: build/C/man2/rt_sigqueueinfo.2:23 build/C/man2/tkill.2:29
+#: build/C/man2/rt_sigqueueinfo.2:25 build/C/man2/sgetmask.2:26 build/C/man2/tkill.2:29
#, no-wrap
-msgid "2011-09-18"
+msgid "2012-07-13"
msgstr ""
#. type: Plain text
-#: build/C/man2/rt_sigqueueinfo.2:26
+#: build/C/man2/rt_sigqueueinfo.2:28
msgid "rt_sigqueueinfo, rt_tgsigqueueinfo - queue a signal and data"
msgstr ""
#. type: Plain text
-#: build/C/man2/rt_sigqueueinfo.2:29
+#: build/C/man2/rt_sigqueueinfo.2:31
#, no-wrap
msgid ""
"B<int rt_sigqueueinfo(pid_t >I<tgid>B<, int >I<sig>B<, siginfo_t "
msgstr ""
#. type: Plain text
-#: build/C/man2/rt_sigqueueinfo.2:32
+#: build/C/man2/rt_sigqueueinfo.2:34
#, no-wrap
msgid ""
"B<int rt_tgsigqueueinfo(pid_t >I<tgid>B<, pid_t >I<tid>B<, int >I<sig>B<,>\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/rt_sigqueueinfo.2:45
+#: build/C/man2/rt_sigqueueinfo.2:38 build/C/man2/sgetmask.2:36 build/C/man2/tkill.2:41
+msgid "I<Note>: There are no glibc wrappers for these system calls; see NOTES."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/rt_sigqueueinfo.2:50
msgid ""
"The B<rt_sigqueueinfo>() and B<rt_tgsigqueueinfo>() system calls are the "
"low-level interfaces used to send a signal plus data to a process or "
msgstr ""
#. type: Plain text
-#: build/C/man2/rt_sigqueueinfo.2:51
+#: build/C/man2/rt_sigqueueinfo.2:56
msgid ""
"These system calls are not intended for direct application use; they are "
"provided to allow the implementation of B<sigqueue>(3) and "
msgstr ""
#. type: Plain text
-#: build/C/man2/rt_sigqueueinfo.2:63
+#: build/C/man2/rt_sigqueueinfo.2:68
msgid ""
"The B<rt_sigqueueinfo>() system call sends the signal I<sig> to the thread "
"group with the ID I<tgid>. (The term \"thread group\" is synonymous with "
msgstr ""
#. type: Plain text
-#: build/C/man2/rt_sigqueueinfo.2:74
+#: build/C/man2/rt_sigqueueinfo.2:79
msgid ""
"The I<uinfo> argument specifies the data to accompany the signal. This "
"argument is a pointer to a structure of type I<siginfo_t>, described in "
msgstr ""
#. type: TP
-#: build/C/man2/rt_sigqueueinfo.2:74 build/C/man7/sigevent.7:86 build/C/man2/wait.2:315
+#: build/C/man2/rt_sigqueueinfo.2:79 build/C/man7/sigevent.7:88 build/C/man2/wait.2:314
#, no-wrap
msgid "I<si_code>"
msgstr ""
#. tkill(2) or
#. type: Plain text
-#: build/C/man2/rt_sigqueueinfo.2:90
+#: build/C/man2/rt_sigqueueinfo.2:95
msgid ""
-"This must be one of the B<SI_*> codes in the kernel source file "
+"This must be one of the B<SI_*> codes in the Linux kernel source file "
"I<include/asm-generic/siginfo.h>, with the restriction that the code must be "
"negative (i.e., cannot be B<SI_USER>, which is used by the kernel to "
"indicate a signal sent by B<kill>(2)) and cannot (since Linux 2.6.39) be "
msgstr ""
#. type: TP
-#: build/C/man2/rt_sigqueueinfo.2:90 build/C/man2/wait.2:294
+#: build/C/man2/rt_sigqueueinfo.2:95 build/C/man2/wait.2:293
#, no-wrap
msgid "I<si_pid>"
msgstr ""
#. type: Plain text
-#: build/C/man2/rt_sigqueueinfo.2:94
+#: build/C/man2/rt_sigqueueinfo.2:99
msgid "This should be set to a process ID, typically the process ID of the sender."
msgstr ""
#. type: TP
-#: build/C/man2/rt_sigqueueinfo.2:94 build/C/man2/wait.2:297
+#: build/C/man2/rt_sigqueueinfo.2:99 build/C/man2/wait.2:296
#, no-wrap
msgid "I<si_uid>"
msgstr ""
#. type: Plain text
-#: build/C/man2/rt_sigqueueinfo.2:98
+#: build/C/man2/rt_sigqueueinfo.2:103
msgid "This should be set to a user ID, typically the real user ID of the sender."
msgstr ""
#. type: TP
-#: build/C/man2/rt_sigqueueinfo.2:98 build/C/man7/sigevent.7:94
+#: build/C/man2/rt_sigqueueinfo.2:103 build/C/man7/sigevent.7:96
#, no-wrap
msgid "I<si_value>"
msgstr ""
#. type: Plain text
-#: build/C/man2/rt_sigqueueinfo.2:105
+#: build/C/man2/rt_sigqueueinfo.2:110
msgid ""
"This field contains the user data to accompany the signal. For more "
"information, see the description of the last (I<union sigval>) argument of "
msgstr ""
#. type: Plain text
-#: build/C/man2/rt_sigqueueinfo.2:112
+#: build/C/man2/rt_sigqueueinfo.2:117
msgid ""
"Internally, the kernel sets the I<si_signo> field to the value specified in "
"I<sig>, so that the receiver of the signal can also obtain the signal number "
msgstr ""
#. type: Plain text
-#: build/C/man2/rt_sigqueueinfo.2:124
+#: build/C/man2/rt_sigqueueinfo.2:129
msgid ""
"The B<rt_tgsigqueueinfo>() system call is like B<rt_sigqueueinfo>(), but "
"sends the signal and data to the single thread specified by the combination "
msgstr ""
#. type: Plain text
-#: build/C/man2/rt_sigqueueinfo.2:129
+#: build/C/man2/rt_sigqueueinfo.2:134
msgid ""
"On success, these system calls return 0. On error, they return -1 and "
"I<errno> is set to indicate the error."
msgstr ""
#. type: TP
-#: build/C/man2/rt_sigqueueinfo.2:130 build/C/man3/sigqueue.3:90 build/C/man2/sigwaitinfo.2:111 build/C/man2/timer_create.2:174
+#: build/C/man2/rt_sigqueueinfo.2:135 build/C/man3/sigqueue.3:92 build/C/man2/sigwaitinfo.2:115 build/C/man2/timer_create.2:176
#, no-wrap
msgid "B<EAGAIN>"
msgstr ""
#. type: Plain text
-#: build/C/man2/rt_sigqueueinfo.2:136 build/C/man3/sigqueue.3:96
+#: build/C/man2/rt_sigqueueinfo.2:141 build/C/man3/sigqueue.3:98
msgid ""
"The limit of signals which may be queued has been reached. (See "
"B<signal>(7) for further information.)"
msgstr ""
#. type: Plain text
-#: build/C/man2/rt_sigqueueinfo.2:143
+#: build/C/man2/rt_sigqueueinfo.2:148
msgid "I<sig>, I<tgid>, or I<tid> was invalid."
msgstr ""
#. type: Plain text
-#: build/C/man2/rt_sigqueueinfo.2:151
+#: build/C/man2/rt_sigqueueinfo.2:156
msgid ""
"The caller does not have permission to send the signal to the target. For "
"the required permissions, see B<kill>(2). Or: I<uinfo-E<gt>si_code> is "
msgstr ""
#. type: Plain text
-#: build/C/man2/rt_sigqueueinfo.2:157
+#: build/C/man2/rt_sigqueueinfo.2:162
msgid "B<rt_sigqueueinfo>(): No thread group matching I<tgid> was found."
msgstr ""
#. type: Plain text
-#: build/C/man2/rt_sigqueueinfo.2:164
+#: build/C/man2/rt_sigqueueinfo.2:169
msgid "B<rt_tgsigqueinfo>(): No thread matching I<tgid> and I<tid> was found."
msgstr ""
#. type: Plain text
-#: build/C/man2/rt_sigqueueinfo.2:171
+#: build/C/man2/rt_sigqueueinfo.2:176
msgid ""
"The B<rt_sigqueueinfo>() system call was added to Linux in version 2.2. "
"The B<rt_tgsigqueueinfo>() system call was added to Linux in version "
msgstr ""
#. type: Plain text
-#: build/C/man2/rt_sigqueueinfo.2:173 build/C/man2/sgetmask.2:63 build/C/man2/timerfd_create.2:372
+#: build/C/man2/rt_sigqueueinfo.2:178 build/C/man2/sgetmask.2:68 build/C/man2/timerfd_create.2:373
msgid "These system calls are Linux-specific."
msgstr ""
#. type: Plain text
-#: build/C/man2/rt_sigqueueinfo.2:178
+#: build/C/man2/rt_sigqueueinfo.2:183
msgid ""
"Since these system calls are not intended for application use, there are no "
"glibc wrapper functions; use B<syscall>(2) in the unlikely case that you "
msgstr ""
#. type: Plain text
-#: build/C/man2/rt_sigqueueinfo.2:183
+#: build/C/man2/rt_sigqueueinfo.2:188
msgid ""
"As with B<kill>(2), the null signal (0) can be used to check if the "
"specified process or thread exists."
msgstr ""
#. type: Plain text
-#: build/C/man2/rt_sigqueueinfo.2:191
+#: build/C/man2/rt_sigqueueinfo.2:196
msgid ""
"B<kill>(2), B<sigaction>(2), B<sigprocmask>(2), B<tgkill>(2), "
"B<pthread_sigqueue>(3), B<sigqueue>(3), B<signal>(7)"
msgstr ""
#. type: TH
-#: build/C/man2/sgetmask.2:24
+#: build/C/man2/s390_runtime_instr.2:26
#, no-wrap
-msgid "SGETMASK"
+msgid "S390_RUNTIME_INSTR"
msgstr ""
#. type: TH
-#: build/C/man2/sgetmask.2:24
+#: build/C/man2/s390_runtime_instr.2:26
#, no-wrap
-msgid "2007-07-05"
+msgid "2012-12-17"
msgstr ""
#. type: Plain text
-#: build/C/man2/sgetmask.2:27
-msgid "sgetmask, ssetmask - manipulation of signal mask (obsolete)"
+#: build/C/man2/s390_runtime_instr.2:29
+msgid "s390_runtime_instr - enable/disable s390 CPU run-time instrumentation"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/s390_runtime_instr.2:32
+#, no-wrap
+msgid "B<#include E<lt>asm/runtime_instr.hE<gt>>\n"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/s390_runtime_instr.2:34
+#, no-wrap
+msgid "B<int s390_runtime_instr(int >I<command>B<, int >I<signum>B<);>\n"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/s390_runtime_instr.2:40
+msgid ""
+"The B<s390_runtime_instr>() system call starts or stops CPU run-time "
+"instrumentation for the calling thread."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/s390_runtime_instr.2:48
+msgid ""
+"The I<command> argument controls whether run-time instrumentation is started "
+"(B<S390_RUNTIME_INSTR_START>, 1) or stopped (B<S390_RUNTIME_INSTR_STOP>, 2) "
+"for the calling thread."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/s390_runtime_instr.2:55
+msgid ""
+"The I<signum> argument specifies the number of a real-time signal. The "
+"real-time signal is sent to the thread if the run-time instrumentation "
+"buffer is full or if the run-time-instrumentation-halted interrupt occurred."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/s390_runtime_instr.2:66
+msgid ""
+"On success, B<s390_runtime_instr>() returns 0 and enables the thread for "
+"run-time instrumentation by assigning the thread a default run-time "
+"instrumentation control block. The caller can then read and modify the "
+"control block and start the run-time instrumentation. On error, -1 is "
+"returned and I<errno> is set to one of the error codes listed below."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/s390_runtime_instr.2:74
+msgid ""
+"The value specified in I<command> is not a valid command or the value "
+"specified in I<signum> is not a real-time signal number."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/s390_runtime_instr.2:77
+msgid "Allocating memory for the run-time instrumentation control block failed."
+msgstr ""
+
+#. type: TP
+#: build/C/man2/s390_runtime_instr.2:77
+#, no-wrap
+msgid "B<EOPNOTSUPP>"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/s390_runtime_instr.2:80
+msgid "The run-time instrumentation facility is not available."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/s390_runtime_instr.2:82
+msgid "This system call is available since Linux 3.7."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/s390_runtime_instr.2:85
+msgid ""
+"This Linux-specific system call is only available on the s390 architecture. "
+"The run-time instrumentation facility is available beginning with System z "
+"EC12."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/s390_runtime_instr.2:89
+msgid ""
+"Glibc does not provide a wrapper for this system call, use B<syscall>(2) to "
+"call it."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/s390_runtime_instr.2:92
+msgid "B<syscall>(2), B<signal>(7)"
+msgstr ""
+
+#. type: TH
+#: build/C/man2/sgetmask.2:26
+#, no-wrap
+msgid "SGETMASK"
msgstr ""
#. type: Plain text
#: build/C/man2/sgetmask.2:29
-msgid "B<long sgetmask(void);>"
+msgid "sgetmask, ssetmask - manipulation of signal mask (obsolete)"
msgstr ""
#. type: Plain text
#: build/C/man2/sgetmask.2:31
+msgid "B<long sgetmask(void);>"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/sgetmask.2:33
msgid "B<long ssetmask(long >I<newmask>B<);>"
msgstr ""
#. type: Plain text
-#: build/C/man2/sgetmask.2:37
+#: build/C/man2/sgetmask.2:42
msgid ""
"These system calls are obsolete. I<Do not use them>; use B<sigprocmask>(2) "
"instead."
msgstr ""
#. type: Plain text
-#: build/C/man2/sgetmask.2:40
+#: build/C/man2/sgetmask.2:45
msgid "B<sgetmask>() returns the signal mask of the calling process."
msgstr ""
#. type: Plain text
-#: build/C/man2/sgetmask.2:45
+#: build/C/man2/sgetmask.2:50
msgid ""
"B<ssetmask>() sets the signal mask of the calling process to the value "
"given in I<newmask>. The previous signal mask is returned."
msgstr ""
#. type: Plain text
-#: build/C/man2/sgetmask.2:54
+#: build/C/man2/sgetmask.2:59
msgid ""
"The signal masks dealt with by these two system calls are plain bit masks "
"(unlike the I<sigset_t> used by B<sigprocmask>(2)); use B<sigmask>(3) to "
msgstr ""
#. type: Plain text
-#: build/C/man2/sgetmask.2:59
+#: build/C/man2/sgetmask.2:64
msgid ""
"B<sgetmask>() always successfully returns the signal mask. B<ssetmask>() "
"always succeeds, and returns the previous signal mask."
msgstr ""
#. type: Plain text
-#: build/C/man2/sgetmask.2:61
+#: build/C/man2/sgetmask.2:66
msgid "These system calls always succeed."
msgstr ""
#. type: Plain text
-#: build/C/man2/sgetmask.2:66
-msgid "Glibc does not provide wrappers for these system calls; use B<syscall>(2)."
+#: build/C/man2/sgetmask.2:72
+msgid ""
+"Glibc does not provide wrappers for these obsolete system calls; in the "
+"unlikely event that you want to call them, use B<syscall>(2)."
msgstr ""
#. type: Plain text
-#: build/C/man2/sgetmask.2:69
+#: build/C/man2/sgetmask.2:75
msgid ""
"These system calls are unaware of signal numbers greater than 31 (i.e., "
"real-time signals)."
msgstr ""
#. type: Plain text
-#: build/C/man2/sgetmask.2:74
+#: build/C/man2/sgetmask.2:80
msgid "It is not possible to block B<SIGSTOP> or B<SIGKILL>."
msgstr ""
#. type: Plain text
-#: build/C/man2/sgetmask.2:77
+#: build/C/man2/sgetmask.2:83
msgid "B<sigprocmask>(2), B<signal>(7)"
msgstr ""
#. type: TH
-#: build/C/man2/sigaction.2:45
+#: build/C/man2/sigaction.2:47
#, no-wrap
msgid "SIGACTION"
msgstr ""
#. type: TH
-#: build/C/man2/sigaction.2:45
+#: build/C/man2/sigaction.2:47
#, no-wrap
-msgid "2012-04-26"
+msgid "2013-02-12"
msgstr ""
#. type: Plain text
-#: build/C/man2/sigaction.2:48
+#: build/C/man2/sigaction.2:50
msgid "sigaction - examine and change a signal action"
msgstr ""
#. type: Plain text
-#: build/C/man2/sigaction.2:54
+#: build/C/man2/sigaction.2:56
#, no-wrap
msgid ""
"B<int sigaction(int >I<signum>B<, const struct sigaction *>I<act>B<,>\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/sigaction.2:64
+#: build/C/man2/sigaction.2:66
msgid ""
"B<sigaction>(): _POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || "
"_POSIX_SOURCE"
msgstr ""
#. type: Plain text
-#: build/C/man2/sigaction.2:73
+#: build/C/man2/sigaction.2:69
+msgid "I<siginfo_t>: _POSIX_C_SOURCE E<gt>= 199309L"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/sigaction.2:78
msgid ""
"The B<sigaction>() system call is used to change the action taken by a "
"process on receipt of a specific signal. (See B<signal>(7) for an overview "
msgstr ""
#. type: Plain text
-#: build/C/man2/sigaction.2:79
+#: build/C/man2/sigaction.2:84
msgid ""
"I<signum> specifies the signal and can be any valid signal except B<SIGKILL> "
"and B<SIGSTOP>."
msgstr ""
#. type: Plain text
-#: build/C/man2/sigaction.2:90
+#: build/C/man2/sigaction.2:95
msgid ""
"If I<act> is non-NULL, the new action for signal I<signum> is installed from "
"I<act>. If I<oldact> is non-NULL, the previous action is saved in "
msgstr ""
#. type: Plain text
-#: build/C/man2/sigaction.2:94
+#: build/C/man2/sigaction.2:99
msgid "The I<sigaction> structure is defined as something like:"
msgstr ""
#. type: Plain text
-#: build/C/man2/sigaction.2:104
+#: build/C/man2/sigaction.2:109
#, no-wrap
msgid ""
"struct sigaction {\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/sigaction.2:111
+#: build/C/man2/sigaction.2:116
msgid ""
"On some architectures a union is involved: do not assign to both "
"I<sa_handler> and I<sa_sigaction>."
msgstr ""
#. type: Plain text
-#: build/C/man2/sigaction.2:118
+#: build/C/man2/sigaction.2:123
msgid ""
"The I<sa_restorer> element is obsolete and should not be used. POSIX does "
"not specify a I<sa_restorer> element."
msgstr ""
#. type: Plain text
-#: build/C/man2/sigaction.2:128
+#: build/C/man2/sigaction.2:133
msgid ""
"I<sa_handler> specifies the action to be associated with I<signum> and may "
"be B<SIG_DFL> for the default action, B<SIG_IGN> to ignore this signal, or a "
msgstr ""
#. type: Plain text
-#: build/C/man2/sigaction.2:150
+#: build/C/man2/sigaction.2:155
msgid ""
"If B<SA_SIGINFO> is specified in I<sa_flags>, then I<sa_sigaction> (instead "
"of I<sa_handler>) specifies the signal-handling function for I<signum>. "
"This function receives the signal number as its first argument, a pointer to "
"a I<siginfo_t> as its second argument and a pointer to a I<ucontext_t> (cast "
"to I<void\\ *>) as its third argument. (Commonly, the handler function "
-"doesn't make any use of the third argument. See B<getcontext>(2) for "
+"doesn't make any use of the third argument. See B<getcontext>(3) for "
"further information about I<ucontext_t>.)"
msgstr ""
#. type: Plain text
-#: build/C/man2/sigaction.2:160
+#: build/C/man2/sigaction.2:165
msgid ""
"I<sa_mask> specifies a mask of signals which should be blocked (i.e., added "
"to the signal mask of the thread in which the signal handler is invoked) "
msgstr ""
#. type: Plain text
-#: build/C/man2/sigaction.2:164
+#: build/C/man2/sigaction.2:169
msgid ""
"I<sa_flags> specifies a set of flags which modify the behavior of the "
"signal. It is formed by the bitwise OR of zero or more of the following:"
msgstr ""
#. type: TP
-#: build/C/man2/sigaction.2:165
+#: build/C/man2/sigaction.2:170
#, no-wrap
msgid "B<SA_NOCLDSTOP>"
msgstr ""
#. type: Plain text
-#: build/C/man2/sigaction.2:182
+#: build/C/man2/sigaction.2:187
msgid ""
"If I<signum> is B<SIGCHLD>, do not receive notification when child processes "
"stop (i.e., when they receive one of B<SIGSTOP>, B<SIGTSTP>, B<SIGTTIN> or "
msgstr ""
#. type: TP
-#: build/C/man2/sigaction.2:182
+#: build/C/man2/sigaction.2:187
#, no-wrap
msgid "B<SA_NOCLDWAIT> (since Linux 2.6)"
msgstr ""
#. To be precise: Linux 2.5.60 -- MTK
#. type: Plain text
-#: build/C/man2/sigaction.2:196
+#: build/C/man2/sigaction.2:201
msgid ""
"If I<signum> is B<SIGCHLD>, do not transform children into zombies when they "
"terminate. See also B<waitpid>(2). This flag is only meaningful when "
msgstr ""
#. type: Plain text
-#: build/C/man2/sigaction.2:208
+#: build/C/man2/sigaction.2:213
msgid ""
"If the B<SA_NOCLDWAIT> flag is set when establishing a handler for "
"B<SIGCHLD>, POSIX.1 leaves it unspecified whether a B<SIGCHLD> signal is "
msgstr ""
#. type: TP
-#: build/C/man2/sigaction.2:208
+#: build/C/man2/sigaction.2:213
#, no-wrap
msgid "B<SA_NODEFER>"
msgstr ""
#. type: Plain text
-#: build/C/man2/sigaction.2:215
+#: build/C/man2/sigaction.2:220
msgid ""
"Do not prevent the signal from being received from within its own signal "
"handler. This flag is only meaningful when establishing a signal handler. "
msgstr ""
#. type: TP
-#: build/C/man2/sigaction.2:215
+#: build/C/man2/sigaction.2:220
#, no-wrap
msgid "B<SA_ONSTACK>"
msgstr ""
#. type: Plain text
-#: build/C/man2/sigaction.2:221
+#: build/C/man2/sigaction.2:226
msgid ""
"Call the signal handler on an alternate signal stack provided by "
"B<sigaltstack>(2). If an alternate stack is not available, the default "
msgstr ""
#. type: TP
-#: build/C/man2/sigaction.2:221
+#: build/C/man2/sigaction.2:226
#, no-wrap
msgid "B<SA_RESETHAND>"
msgstr ""
#. type: Plain text
-#: build/C/man2/sigaction.2:228
+#: build/C/man2/sigaction.2:232
msgid ""
-"Restore the signal action to the default state once the signal handler has "
-"been called. This flag is only meaningful when establishing a signal "
-"handler. B<SA_ONESHOT> is an obsolete, nonstandard synonym for this flag."
+"Restore the signal action to the default upon entry to the signal handler. "
+"This flag is only meaningful when establishing a signal handler. "
+"B<SA_ONESHOT> is an obsolete, nonstandard synonym for this flag."
msgstr ""
#. type: TP
-#: build/C/man2/sigaction.2:228
+#: build/C/man2/sigaction.2:232
#, no-wrap
msgid "B<SA_RESTART>"
msgstr ""
#. type: Plain text
-#: build/C/man2/sigaction.2:236
+#: build/C/man2/sigaction.2:240
msgid ""
"Provide behavior compatible with BSD signal semantics by making certain "
"system calls restartable across signals. This flag is only meaningful when "
msgstr ""
#. type: TP
-#: build/C/man2/sigaction.2:236
+#: build/C/man2/sigaction.2:240
#, no-wrap
msgid "B<SA_SIGINFO> (since Linux 2.2)"
msgstr ""
#. .I sa_sigaction
#. field was added in Linux 2.1.86.)
#. type: Plain text
-#: build/C/man2/sigaction.2:247
+#: build/C/man2/sigaction.2:251
msgid ""
-"The signal handler takes 3 arguments, not one. In this case, "
+"The signal handler takes three arguments, not one. In this case, "
"I<sa_sigaction> should be set instead of I<sa_handler>. This flag is only "
"meaningful when establishing a signal handler."
msgstr ""
#. type: Plain text
-#: build/C/man2/sigaction.2:254
+#: build/C/man2/sigaction.2:258
msgid ""
"The I<siginfo_t> argument to I<sa_sigaction> is a struct with the following "
"elements:"
#. this page could use a little more detail on its purpose there.
#. In the kernel: si_tid
#. type: Plain text
-#: build/C/man2/sigaction.2:285
+#: build/C/man2/sigaction.2:289
#, no-wrap
msgid ""
"siginfo_t {\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/sigaction.2:294
+#: build/C/man2/sigaction.2:298
msgid ""
"I<si_signo>, I<si_errno> and I<si_code> are defined for all signals. "
"(I<si_errno> is generally unused on Linux.) The rest of the struct may be a "
msgstr ""
#. type: Plain text
-#: build/C/man2/sigaction.2:309
+#: build/C/man2/sigaction.2:313
msgid ""
"Signals sent with B<kill>(2) and B<sigqueue>(3) fill in I<si_pid> and "
"I<si_uid>. In addition, signals sent with B<sigqueue>(3) fill in I<si_int> "
msgstr ""
#. type: Plain text
-#: build/C/man2/sigaction.2:325
+#: build/C/man2/sigaction.2:329
msgid ""
"Signals sent by POSIX.1b timers (since Linux 2.6) fill in I<si_overrun> and "
"I<si_timerid>. The I<si_timerid> field is an internal ID used by the kernel "
msgstr ""
#. type: Plain text
-#: build/C/man2/sigaction.2:340
+#: build/C/man2/sigaction.2:344
msgid ""
"Signals sent for message queue notification (see the description of "
"B<SIGEV_SIGNAL> in B<mq_notify>(3)) fill in I<si_int>/I<si_ptr>, with the "
#. waited-for children (as is done by getrusage() and times()
#. and wait4()). Solaris 8 does include child times.
#. type: Plain text
-#: build/C/man2/sigaction.2:387
+#: build/C/man2/sigaction.2:391
msgid ""
"B<SIGCHLD> fills in I<si_pid>, I<si_uid>, I<si_status>, I<si_utime> and "
"I<si_stime>, providing information about the child. The I<si_pid> field is "
#. info.si_pid = task_pid_vnr(current);
#. info.si_uid = current_uid(); /* Real UID */
#. type: Plain text
-#: build/C/man2/sigaction.2:423
+#: build/C/man2/sigaction.2:427
msgid ""
"B<SIGILL>, B<SIGFPE>, B<SIGSEGV>, B<SIGBUS>, and B<SIGTRAP> fill in "
"I<si_addr> with the address of the fault. On some architectures, these "
msgstr ""
#. type: Plain text
-#: build/C/man2/sigaction.2:437
+#: build/C/man2/sigaction.2:441
msgid ""
"B<SIGIO>/B<SIGPOLL> (the two names are synonyms on Linux) fills in "
"I<si_band> and I<si_fd>. The I<si_band> event is a bit mask containing the "
msgstr ""
#. type: Plain text
-#: build/C/man2/sigaction.2:444
+#: build/C/man2/sigaction.2:448
msgid ""
"I<si_code> is a value (not a bit mask) indicating why this signal was "
"sent. The following list shows the values which can be placed in I<si_code> "
msgstr ""
#. type: TP
-#: build/C/man2/sigaction.2:445
+#: build/C/man2/sigaction.2:449
#, no-wrap
msgid "B<SI_USER>"
msgstr ""
#. type: TP
-#: build/C/man2/sigaction.2:448 build/C/man7/signal.7:109
+#: build/C/man2/sigaction.2:452 build/C/man7/signal.7:111
#, no-wrap
msgid "B<kill>(2)"
msgstr ""
#. type: TP
-#: build/C/man2/sigaction.2:448
+#: build/C/man2/sigaction.2:452
#, no-wrap
msgid "B<SI_KERNEL>"
msgstr ""
#. type: Plain text
-#: build/C/man2/sigaction.2:451
+#: build/C/man2/sigaction.2:455
msgid "Sent by the kernel."
msgstr ""
#. type: TP
-#: build/C/man2/sigaction.2:451
+#: build/C/man2/sigaction.2:455
#, no-wrap
msgid "B<SI_QUEUE>"
msgstr ""
#. type: TP
-#: build/C/man2/sigaction.2:454 build/C/man7/signal.7:126
+#: build/C/man2/sigaction.2:458 build/C/man7/signal.7:128
#, no-wrap
msgid "B<sigqueue>(3)"
msgstr ""
#. type: TP
-#: build/C/man2/sigaction.2:454
+#: build/C/man2/sigaction.2:458
#, no-wrap
msgid "B<SI_TIMER>"
msgstr ""
#. type: Plain text
-#: build/C/man2/sigaction.2:457
+#: build/C/man2/sigaction.2:461
msgid "POSIX timer expired"
msgstr ""
#. type: TP
-#: build/C/man2/sigaction.2:457
+#: build/C/man2/sigaction.2:461
#, no-wrap
msgid "B<SI_MESGQ>"
msgstr ""
#. type: Plain text
-#: build/C/man2/sigaction.2:461
+#: build/C/man2/sigaction.2:465
msgid "POSIX message queue state changed (since Linux 2.6.6); see B<mq_notify>(3)"
msgstr ""
#. type: TP
-#: build/C/man2/sigaction.2:461
+#: build/C/man2/sigaction.2:465
#, no-wrap
msgid "B<SI_ASYNCIO>"
msgstr ""
#. type: Plain text
-#: build/C/man2/sigaction.2:464
+#: build/C/man2/sigaction.2:468
msgid "AIO completed"
msgstr ""
#. type: TP
-#: build/C/man2/sigaction.2:464
+#: build/C/man2/sigaction.2:468
#, no-wrap
msgid "B<SI_SIGIO>"
msgstr ""
#. type: Plain text
-#: build/C/man2/sigaction.2:473
+#: build/C/man2/sigaction.2:477
msgid ""
"Queued B<SIGIO> (only in kernels up to Linux 2.2; from Linux 2.4 onward "
"B<SIGIO>/B<SIGPOLL> fills in I<si_code> as described below)."
msgstr ""
#. type: TP
-#: build/C/man2/sigaction.2:473
+#: build/C/man2/sigaction.2:477
#, no-wrap
msgid "B<SI_TKILL>"
msgstr ""
#. It appears to have been an idea that was tried during 2.5.6
#. through to 2.5.24 and then was backed out.
#. type: Plain text
-#: build/C/man2/sigaction.2:482
+#: build/C/man2/sigaction.2:486
msgid "B<tkill>(2) or B<tgkill>(2) (since Linux 2.4.19)"
msgstr ""
#. type: Plain text
-#: build/C/man2/sigaction.2:489
+#: build/C/man2/sigaction.2:493
msgid "The following values can be placed in I<si_code> for a B<SIGILL> signal:"
msgstr ""
#. type: TP
-#: build/C/man2/sigaction.2:490
+#: build/C/man2/sigaction.2:494
#, no-wrap
msgid "B<ILL_ILLOPC>"
msgstr ""
#. type: Plain text
-#: build/C/man2/sigaction.2:493
+#: build/C/man2/sigaction.2:497
msgid "illegal opcode"
msgstr ""
#. type: TP
-#: build/C/man2/sigaction.2:493
+#: build/C/man2/sigaction.2:497
#, no-wrap
msgid "B<ILL_ILLOPN>"
msgstr ""
#. type: Plain text
-#: build/C/man2/sigaction.2:496
+#: build/C/man2/sigaction.2:500
msgid "illegal operand"
msgstr ""
#. type: TP
-#: build/C/man2/sigaction.2:496
+#: build/C/man2/sigaction.2:500
#, no-wrap
msgid "B<ILL_ILLADR>"
msgstr ""
#. type: Plain text
-#: build/C/man2/sigaction.2:499
+#: build/C/man2/sigaction.2:503
msgid "illegal addressing mode"
msgstr ""
#. type: TP
-#: build/C/man2/sigaction.2:499
+#: build/C/man2/sigaction.2:503
#, no-wrap
msgid "B<ILL_ILLTRP>"
msgstr ""
#. type: Plain text
-#: build/C/man2/sigaction.2:502
+#: build/C/man2/sigaction.2:506
msgid "illegal trap"
msgstr ""
#. type: TP
-#: build/C/man2/sigaction.2:502
+#: build/C/man2/sigaction.2:506
#, no-wrap
msgid "B<ILL_PRVOPC>"
msgstr ""
#. type: Plain text
-#: build/C/man2/sigaction.2:505
+#: build/C/man2/sigaction.2:509
msgid "privileged opcode"
msgstr ""
#. type: TP
-#: build/C/man2/sigaction.2:505
+#: build/C/man2/sigaction.2:509
#, no-wrap
msgid "B<ILL_PRVREG>"
msgstr ""
#. type: Plain text
-#: build/C/man2/sigaction.2:508
+#: build/C/man2/sigaction.2:512
msgid "privileged register"
msgstr ""
#. type: TP
-#: build/C/man2/sigaction.2:508
+#: build/C/man2/sigaction.2:512
#, no-wrap
msgid "B<ILL_COPROC>"
msgstr ""
#. type: Plain text
-#: build/C/man2/sigaction.2:511
+#: build/C/man2/sigaction.2:515
msgid "coprocessor error"
msgstr ""
#. type: TP
-#: build/C/man2/sigaction.2:511
+#: build/C/man2/sigaction.2:515
#, no-wrap
msgid "B<ILL_BADSTK>"
msgstr ""
#. type: Plain text
-#: build/C/man2/sigaction.2:514
+#: build/C/man2/sigaction.2:518
msgid "internal stack error"
msgstr ""
#. type: Plain text
-#: build/C/man2/sigaction.2:521
+#: build/C/man2/sigaction.2:525
msgid "The following values can be placed in I<si_code> for a B<SIGFPE> signal:"
msgstr ""
#. type: TP
-#: build/C/man2/sigaction.2:522
+#: build/C/man2/sigaction.2:526
#, no-wrap
msgid "B<FPE_INTDIV>"
msgstr ""
#. type: Plain text
-#: build/C/man2/sigaction.2:525
+#: build/C/man2/sigaction.2:529
msgid "integer divide by zero"
msgstr ""
#. type: TP
-#: build/C/man2/sigaction.2:525
+#: build/C/man2/sigaction.2:529
#, no-wrap
msgid "B<FPE_INTOVF>"
msgstr ""
#. type: Plain text
-#: build/C/man2/sigaction.2:528
+#: build/C/man2/sigaction.2:532
msgid "integer overflow"
msgstr ""
#. type: TP
-#: build/C/man2/sigaction.2:528
+#: build/C/man2/sigaction.2:532
#, no-wrap
msgid "B<FPE_FLTDIV>"
msgstr ""
#. type: Plain text
-#: build/C/man2/sigaction.2:531
+#: build/C/man2/sigaction.2:535
msgid "floating-point divide by zero"
msgstr ""
#. type: TP
-#: build/C/man2/sigaction.2:531
+#: build/C/man2/sigaction.2:535
#, no-wrap
msgid "B<FPE_FLTOVF>"
msgstr ""
#. type: Plain text
-#: build/C/man2/sigaction.2:534
+#: build/C/man2/sigaction.2:538
msgid "floating-point overflow"
msgstr ""
#. type: TP
-#: build/C/man2/sigaction.2:534
+#: build/C/man2/sigaction.2:538
#, no-wrap
msgid "B<FPE_FLTUND>"
msgstr ""
#. type: Plain text
-#: build/C/man2/sigaction.2:537
+#: build/C/man2/sigaction.2:541
msgid "floating-point underflow"
msgstr ""
#. type: TP
-#: build/C/man2/sigaction.2:537
+#: build/C/man2/sigaction.2:541
#, no-wrap
msgid "B<FPE_FLTRES>"
msgstr ""
#. type: Plain text
-#: build/C/man2/sigaction.2:540
+#: build/C/man2/sigaction.2:544
msgid "floating-point inexact result"
msgstr ""
#. type: TP
-#: build/C/man2/sigaction.2:540
+#: build/C/man2/sigaction.2:544
#, no-wrap
msgid "B<FPE_FLTINV>"
msgstr ""
#. type: Plain text
-#: build/C/man2/sigaction.2:543
+#: build/C/man2/sigaction.2:547
msgid "floating-point invalid operation"
msgstr ""
#. type: TP
-#: build/C/man2/sigaction.2:543
+#: build/C/man2/sigaction.2:547
#, no-wrap
msgid "B<FPE_FLTSUB>"
msgstr ""
#. type: Plain text
-#: build/C/man2/sigaction.2:546
+#: build/C/man2/sigaction.2:550
msgid "subscript out of range"
msgstr ""
#. type: Plain text
-#: build/C/man2/sigaction.2:553
+#: build/C/man2/sigaction.2:557
msgid "The following values can be placed in I<si_code> for a B<SIGSEGV> signal:"
msgstr ""
#. type: TP
-#: build/C/man2/sigaction.2:554
+#: build/C/man2/sigaction.2:558
#, no-wrap
msgid "B<SEGV_MAPERR>"
msgstr ""
#. type: Plain text
-#: build/C/man2/sigaction.2:557
+#: build/C/man2/sigaction.2:561
msgid "address not mapped to object"
msgstr ""
#. type: TP
-#: build/C/man2/sigaction.2:557
+#: build/C/man2/sigaction.2:561
#, no-wrap
msgid "B<SEGV_ACCERR>"
msgstr ""
#. type: Plain text
-#: build/C/man2/sigaction.2:560
+#: build/C/man2/sigaction.2:564
msgid "invalid permissions for mapped object"
msgstr ""
#. type: Plain text
-#: build/C/man2/sigaction.2:567
+#: build/C/man2/sigaction.2:571
msgid "The following values can be placed in I<si_code> for a B<SIGBUS> signal:"
msgstr ""
#. type: TP
-#: build/C/man2/sigaction.2:568
+#: build/C/man2/sigaction.2:572
#, no-wrap
msgid "B<BUS_ADRALN>"
msgstr ""
#. type: Plain text
-#: build/C/man2/sigaction.2:571
+#: build/C/man2/sigaction.2:575
msgid "invalid address alignment"
msgstr ""
#. type: TP
-#: build/C/man2/sigaction.2:571
+#: build/C/man2/sigaction.2:575
#, no-wrap
msgid "B<BUS_ADRERR>"
msgstr ""
#. type: Plain text
-#: build/C/man2/sigaction.2:574
+#: build/C/man2/sigaction.2:578
msgid "nonexistent physical address"
msgstr ""
#. type: TP
-#: build/C/man2/sigaction.2:574
+#: build/C/man2/sigaction.2:578
#, no-wrap
msgid "B<BUS_OBJERR>"
msgstr ""
#. type: Plain text
-#: build/C/man2/sigaction.2:577
+#: build/C/man2/sigaction.2:581
msgid "object-specific hardware error"
msgstr ""
#. type: TP
-#: build/C/man2/sigaction.2:577
+#: build/C/man2/sigaction.2:581
#, no-wrap
msgid "B<BUS_MCEERR_AR> (since Linux 2.6.32)"
msgstr ""
#. type: Plain text
-#: build/C/man2/sigaction.2:580
+#: build/C/man2/sigaction.2:584
msgid "Hardware memory error consumed on a machine check; action required."
msgstr ""
#. type: TP
-#: build/C/man2/sigaction.2:580
+#: build/C/man2/sigaction.2:584
#, no-wrap
msgid "B<BUS_MCEERR_AO> (since Linux 2.6.32)"
msgstr ""
#. type: Plain text
-#: build/C/man2/sigaction.2:583
+#: build/C/man2/sigaction.2:587
msgid "Hardware memory error detected in process but not consumed; action optional."
msgstr ""
#. type: Plain text
-#: build/C/man2/sigaction.2:590
+#: build/C/man2/sigaction.2:594
msgid "The following values can be placed in I<si_code> for a B<SIGTRAP> signal:"
msgstr ""
#. type: TP
-#: build/C/man2/sigaction.2:591
+#: build/C/man2/sigaction.2:595
#, no-wrap
msgid "B<TRAP_BRKPT>"
msgstr ""
#. type: Plain text
-#: build/C/man2/sigaction.2:594
+#: build/C/man2/sigaction.2:598
msgid "process breakpoint"
msgstr ""
#. type: TP
-#: build/C/man2/sigaction.2:594
+#: build/C/man2/sigaction.2:598
#, no-wrap
msgid "B<TRAP_TRACE>"
msgstr ""
#. type: Plain text
-#: build/C/man2/sigaction.2:597
+#: build/C/man2/sigaction.2:601
msgid "process trace trap"
msgstr ""
#. type: TP
-#: build/C/man2/sigaction.2:597
+#: build/C/man2/sigaction.2:601
#, no-wrap
msgid "B<TRAP_BRANCH> (since Linux 2.4)"
msgstr ""
#. type: Plain text
-#: build/C/man2/sigaction.2:600
+#: build/C/man2/sigaction.2:604
msgid "process taken branch trap"
msgstr ""
#. type: TP
-#: build/C/man2/sigaction.2:600
+#: build/C/man2/sigaction.2:604
#, no-wrap
msgid "B<TRAP_HWBKPT> (since Linux 2.4)"
msgstr ""
#. type: Plain text
-#: build/C/man2/sigaction.2:603
+#: build/C/man2/sigaction.2:607
msgid "hardware breakpoint/watchpoint"
msgstr ""
#. type: Plain text
-#: build/C/man2/sigaction.2:610
+#: build/C/man2/sigaction.2:614
msgid "The following values can be placed in I<si_code> for a B<SIGCHLD> signal:"
msgstr ""
#. type: TP
-#: build/C/man2/sigaction.2:611
+#: build/C/man2/sigaction.2:615
#, no-wrap
msgid "B<CLD_EXITED>"
msgstr ""
#. type: Plain text
-#: build/C/man2/sigaction.2:614
+#: build/C/man2/sigaction.2:618
msgid "child has exited"
msgstr ""
#. type: TP
-#: build/C/man2/sigaction.2:614
+#: build/C/man2/sigaction.2:618
#, no-wrap
msgid "B<CLD_KILLED>"
msgstr ""
#. type: Plain text
-#: build/C/man2/sigaction.2:617
+#: build/C/man2/sigaction.2:621
msgid "child was killed"
msgstr ""
#. type: TP
-#: build/C/man2/sigaction.2:617
+#: build/C/man2/sigaction.2:621
#, no-wrap
msgid "B<CLD_DUMPED>"
msgstr ""
#. type: Plain text
-#: build/C/man2/sigaction.2:620
+#: build/C/man2/sigaction.2:624
msgid "child terminated abnormally"
msgstr ""
#. type: TP
-#: build/C/man2/sigaction.2:620
+#: build/C/man2/sigaction.2:624
#, no-wrap
msgid "B<CLD_TRAPPED>"
msgstr ""
#. type: Plain text
-#: build/C/man2/sigaction.2:623
+#: build/C/man2/sigaction.2:627
msgid "traced child has trapped"
msgstr ""
#. type: TP
-#: build/C/man2/sigaction.2:623
+#: build/C/man2/sigaction.2:627
#, no-wrap
msgid "B<CLD_STOPPED>"
msgstr ""
#. type: Plain text
-#: build/C/man2/sigaction.2:626
+#: build/C/man2/sigaction.2:630
msgid "child has stopped"
msgstr ""
#. type: TP
-#: build/C/man2/sigaction.2:626
+#: build/C/man2/sigaction.2:630
#, no-wrap
msgid "B<CLD_CONTINUED>"
msgstr ""
#. type: Plain text
-#: build/C/man2/sigaction.2:629
+#: build/C/man2/sigaction.2:633
msgid "stopped child has continued (since Linux 2.6.9)"
msgstr ""
#. type: Plain text
-#: build/C/man2/sigaction.2:636
+#: build/C/man2/sigaction.2:640
msgid ""
"The following values can be placed in I<si_code> for a B<SIGIO>/B<SIGPOLL> "
"signal:"
msgstr ""
#. type: TP
-#: build/C/man2/sigaction.2:637
+#: build/C/man2/sigaction.2:641
#, no-wrap
msgid "B<POLL_IN>"
msgstr ""
#. type: Plain text
-#: build/C/man2/sigaction.2:640
+#: build/C/man2/sigaction.2:644
msgid "data input available"
msgstr ""
#. type: TP
-#: build/C/man2/sigaction.2:640
+#: build/C/man2/sigaction.2:644
#, no-wrap
msgid "B<POLL_OUT>"
msgstr ""
#. type: Plain text
-#: build/C/man2/sigaction.2:643
+#: build/C/man2/sigaction.2:647
msgid "output buffers available"
msgstr ""
#. type: TP
-#: build/C/man2/sigaction.2:643
+#: build/C/man2/sigaction.2:647
#, no-wrap
msgid "B<POLL_MSG>"
msgstr ""
#. type: Plain text
-#: build/C/man2/sigaction.2:646
+#: build/C/man2/sigaction.2:650
msgid "input message available"
msgstr ""
#. type: TP
-#: build/C/man2/sigaction.2:646
+#: build/C/man2/sigaction.2:650
#, no-wrap
msgid "B<POLL_ERR>"
msgstr ""
#. type: Plain text
-#: build/C/man2/sigaction.2:649
+#: build/C/man2/sigaction.2:653
msgid "I/O error"
msgstr ""
#. type: TP
-#: build/C/man2/sigaction.2:649
+#: build/C/man2/sigaction.2:653
#, no-wrap
msgid "B<POLL_PRI>"
msgstr ""
#. type: Plain text
-#: build/C/man2/sigaction.2:652
+#: build/C/man2/sigaction.2:656
msgid "high priority input available"
msgstr ""
#. type: TP
-#: build/C/man2/sigaction.2:652
+#: build/C/man2/sigaction.2:656
#, no-wrap
msgid "B<POLL_HUP>"
msgstr ""
#. type: Plain text
-#: build/C/man2/sigaction.2:655
+#: build/C/man2/sigaction.2:659
msgid "device disconnected"
msgstr ""
#. type: Plain text
-#: build/C/man2/sigaction.2:659
+#: build/C/man2/sigaction.2:663
msgid "B<sigaction>() returns 0 on success and -1 on error."
msgstr ""
#. type: Plain text
-#: build/C/man2/sigaction.2:664
+#: build/C/man2/sigaction.2:668
msgid ""
"I<act> or I<oldact> points to memory which is not a valid part of the "
"process address space."
msgstr ""
#. type: Plain text
-#: build/C/man2/sigaction.2:671
+#: build/C/man2/sigaction.2:675
msgid ""
"An invalid signal was specified. This will also be generated if an attempt "
"is made to change the action for B<SIGKILL> or B<SIGSTOP>, which cannot be "
#. SVr4 does not document the EINTR condition.
#. type: Plain text
-#: build/C/man2/sigaction.2:674
+#: build/C/man2/sigaction.2:678
msgid "POSIX.1-2001, SVr4."
msgstr ""
#. type: Plain text
-#: build/C/man2/sigaction.2:682 build/C/man7/signal.7:103
+#: build/C/man2/sigaction.2:686 build/C/man7/signal.7:105
msgid ""
"A child created via B<fork>(2) inherits a copy of its parent's signal "
"dispositions. During an B<execve>(2), the dispositions of handled signals "
msgstr ""
#. type: Plain text
-#: build/C/man2/sigaction.2:700 build/C/man2/signal.2:129
+#: build/C/man2/sigaction.2:704 build/C/man2/signal.2:131
msgid ""
"According to POSIX, the behavior of a process is undefined after it ignores "
"a B<SIGFPE>, B<SIGILL>, or B<SIGSEGV> signal that was not generated by "
msgstr ""
#. type: Plain text
-#: build/C/man2/sigaction.2:717
+#: build/C/man2/sigaction.2:721
msgid ""
"POSIX.1-1990 disallowed setting the action for B<SIGCHLD> to B<SIG_IGN>. "
"POSIX.1-2001 allows this possibility, so that ignoring B<SIGCHLD> can be "
msgstr ""
#. type: Plain text
-#: build/C/man2/sigaction.2:730
+#: build/C/man2/sigaction.2:734
msgid ""
"POSIX.1-1990 only specified B<SA_NOCLDSTOP>. POSIX.1-2001 added "
"B<SA_NOCLDWAIT>, B<SA_RESETHAND>, B<SA_NODEFER>, and B<SA_SIGINFO>. Use of "
msgstr ""
#. type: Plain text
-#: build/C/man2/sigaction.2:734
+#: build/C/man2/sigaction.2:738
msgid "The B<SA_RESETHAND> flag is compatible with the SVr4 flag of the same name."
msgstr ""
#. type: Plain text
-#: build/C/man2/sigaction.2:744
+#: build/C/man2/sigaction.2:748
msgid ""
"The B<SA_NODEFER> flag is compatible with the SVr4 flag of the same name "
"under kernels 1.3.9 and newer. On older kernels the Linux implementation "
msgstr ""
#. type: Plain text
-#: build/C/man2/sigaction.2:750
+#: build/C/man2/sigaction.2:754
msgid ""
"B<sigaction>() can be called with a NULL second argument to query the "
"current signal handler. It can also be used to check whether a given signal "
msgstr ""
#. type: Plain text
-#: build/C/man2/sigaction.2:756
+#: build/C/man2/sigaction.2:760
msgid ""
"It is not possible to block B<SIGKILL> or B<SIGSTOP> (by specifying them in "
"I<sa_mask>). Attempts to do so are silently ignored."
msgstr ""
#. type: Plain text
-#: build/C/man2/sigaction.2:760 build/C/man2/sigpending.2:65 build/C/man2/sigprocmask.2:139 build/C/man2/sigsuspend.2:104
+#: build/C/man2/sigaction.2:764 build/C/man2/sigpending.2:67 build/C/man2/sigprocmask.2:141 build/C/man2/sigsuspend.2:106
msgid "See B<sigsetops>(3) for details on manipulating signal sets."
msgstr ""
#. type: Plain text
-#: build/C/man2/sigaction.2:765
+#: build/C/man2/sigaction.2:769
msgid ""
"See B<signal>(7) for a list of the async-signal-safe functions that can be "
"safely called inside from inside a signal handler."
msgstr ""
#. type: SS
-#: build/C/man2/sigaction.2:765
+#: build/C/man2/sigaction.2:769
#, no-wrap
msgid "Undocumented"
msgstr ""
#. type: Plain text
-#: build/C/man2/sigaction.2:775
+#: build/C/man2/sigaction.2:779
msgid ""
"Before the introduction of B<SA_SIGINFO> it was also possible to get some "
"additional information, namely by using a I<sa_handler> with second argument "
-"of type I<struct sigcontext>. See the relevant kernel sources for details. "
-"This use is obsolete now."
+"of type I<struct sigcontext>. See the relevant Linux kernel sources for "
+"details. This use is obsolete now."
msgstr ""
#. type: Plain text
-#: build/C/man2/sigaction.2:784
+#: build/C/man2/sigaction.2:788
msgid ""
"In kernels up to and including 2.6.13, specifying B<SA_NODEFER> in "
"I<sa_flags> prevents not only the delivered signal from being masked during "
msgstr ""
#. type: Plain text
-#: build/C/man2/sigaction.2:787
+#: build/C/man2/sigaction.2:791
msgid "See B<mprotect>(2)."
msgstr ""
#. type: Plain text
-#: build/C/man2/sigaction.2:806
+#: build/C/man2/sigaction.2:810
msgid ""
"B<kill>(1), B<kill>(2), B<killpg>(2), B<pause>(2), B<sigaltstack>(2), "
"B<signal>(2), B<signalfd>(2), B<sigpending>(2), B<sigprocmask>(2), "
msgstr ""
#. type: TH
-#: build/C/man2/sigaltstack.2:25
+#: build/C/man2/sigaltstack.2:27
#, no-wrap
msgid "SIGALTSTACK"
msgstr ""
#. type: TH
-#: build/C/man2/sigaltstack.2:25 build/C/man2/wait.2:50
+#: build/C/man2/sigaltstack.2:27
#, no-wrap
msgid "2010-09-26"
msgstr ""
#. type: Plain text
-#: build/C/man2/sigaltstack.2:28
+#: build/C/man2/sigaltstack.2:30
msgid "sigaltstack - set and/or get signal stack context"
msgstr ""
#. type: Plain text
-#: build/C/man2/sigaltstack.2:32
+#: build/C/man2/sigaltstack.2:34
msgid "B<int sigaltstack(const stack_t *>I<ss>B<, stack_t *>I<oss>B<);>"
msgstr ""
#. type: Plain text
-#: build/C/man2/sigaltstack.2:39
+#: build/C/man2/sigaltstack.2:41
msgid "B<sigaltstack>():"
msgstr ""
#. type: Plain text
-#: build/C/man2/sigaltstack.2:46 build/C/man3/siginterrupt.3:51 build/C/man2/wait.2:79
+#: build/C/man2/sigaltstack.2:48 build/C/man3/siginterrupt.3:53 build/C/man2/wait.2:78
msgid "|| /* Since glibc 2.12: */ _POSIX_C_SOURCE\\ E<gt>=\\ 200809L"
msgstr ""
#. type: Plain text
-#: build/C/man2/sigaltstack.2:58
+#: build/C/man2/sigaltstack.2:60
msgid ""
"B<sigaltstack>() allows a process to define a new alternate signal stack "
"and/or retrieve the state of an existing alternate signal stack. An "
msgstr ""
#. type: Plain text
-#: build/C/man2/sigaltstack.2:61
+#: build/C/man2/sigaltstack.2:63
msgid ""
"The normal sequence of events for using an alternate signal stack is the "
"following:"
msgstr ""
#. type: IP
-#: build/C/man2/sigaltstack.2:61 build/C/man7/signal.7:385
+#: build/C/man2/sigaltstack.2:63 build/C/man7/signal.7:387
#, no-wrap
msgid "1."
msgstr ""
#. type: Plain text
-#: build/C/man2/sigaltstack.2:65
+#: build/C/man2/sigaltstack.2:67
msgid "Allocate an area of memory to be used for the alternate signal stack."
msgstr ""
#. type: IP
-#: build/C/man2/sigaltstack.2:65 build/C/man7/signal.7:389
+#: build/C/man2/sigaltstack.2:67 build/C/man7/signal.7:391
#, no-wrap
msgid "2."
msgstr ""
#. type: Plain text
-#: build/C/man2/sigaltstack.2:71
+#: build/C/man2/sigaltstack.2:73
msgid ""
"Use B<sigaltstack>() to inform the system of the existence and location of "
"the alternate signal stack."
msgstr ""
#. type: IP
-#: build/C/man2/sigaltstack.2:71 build/C/man7/signal.7:409
+#: build/C/man2/sigaltstack.2:73 build/C/man7/signal.7:411
#, no-wrap
msgid "3."
msgstr ""
#. type: Plain text
-#: build/C/man2/sigaltstack.2:78
+#: build/C/man2/sigaltstack.2:80
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 "
msgstr ""
#. type: Plain text
-#: build/C/man2/sigaltstack.2:86
+#: build/C/man2/sigaltstack.2:88
msgid ""
"The I<ss> argument is used to specify a new alternate signal stack, while "
"the I<oss> argument is used to retrieve information about the currently "
msgstr ""
#. type: Plain text
-#: build/C/man2/sigaltstack.2:94
+#: build/C/man2/sigaltstack.2:96
#, no-wrap
msgid ""
"typedef struct {\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/sigaltstack.2:105
+#: build/C/man2/sigaltstack.2:107
msgid ""
"To establish a new alternate signal stack, I<ss.ss_flags> is set to zero, "
"and I<ss.ss_sp> and I<ss.ss_size> specify the starting address and size of "
msgstr ""
#. type: Plain text
-#: build/C/man2/sigaltstack.2:109
+#: build/C/man2/sigaltstack.2:111
msgid ""
"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 "
msgstr ""
#. type: Plain text
-#: build/C/man2/sigaltstack.2:114
+#: build/C/man2/sigaltstack.2:116
msgid ""
"To disable an existing stack, specify I<ss.ss_flags> as B<SS_DISABLE>. In "
"this case, the remaining fields in I<ss> are ignored."
msgstr ""
#. type: Plain text
-#: build/C/man2/sigaltstack.2:122
+#: build/C/man2/sigaltstack.2:124
msgid ""
"If I<oss> is not NULL, then it is used to return information about the "
"alternate signal stack which was in effect prior to the call to "
msgstr ""
#. type: TP
-#: build/C/man2/sigaltstack.2:122
+#: build/C/man2/sigaltstack.2:124
#, no-wrap
msgid "B<SS_ONSTACK>"
msgstr ""
#. type: Plain text
-#: build/C/man2/sigaltstack.2:128
+#: build/C/man2/sigaltstack.2:130
msgid ""
"The process is currently executing on the alternate signal stack. (Note "
"that it is not possible to change the alternate signal stack if the process "
msgstr ""
#. type: TP
-#: build/C/man2/sigaltstack.2:128
+#: build/C/man2/sigaltstack.2:130
#, no-wrap
msgid "B<SS_DISABLE>"
msgstr ""
#. type: Plain text
-#: build/C/man2/sigaltstack.2:131
+#: build/C/man2/sigaltstack.2:133
msgid "The alternate signal stack is currently disabled."
msgstr ""
#. type: Plain text
-#: build/C/man2/sigaltstack.2:135
+#: build/C/man2/sigaltstack.2:137
msgid ""
"B<sigaltstack>() returns 0 on success, or -1 on failure with I<errno> set "
"to indicate the error."
msgstr ""
#. type: Plain text
-#: build/C/man2/sigaltstack.2:140
+#: build/C/man2/sigaltstack.2:142
msgid ""
"Either I<ss> or I<oss> is not NULL and points to an area outside of the "
"process's address space."
msgstr ""
#. type: Plain text
-#: build/C/man2/sigaltstack.2:145
+#: build/C/man2/sigaltstack.2:147
msgid ""
"I<ss> is not NULL and the I<ss_flags> field contains a nonzero value other "
"than B<SS_DISABLE>."
msgstr ""
#. type: Plain text
-#: build/C/man2/sigaltstack.2:149
+#: build/C/man2/sigaltstack.2:151
msgid ""
"The specified size of the new alternate signal stack (I<ss.ss_size>) was "
"less than B<MINSTKSZ>."
msgstr ""
#. type: Plain text
-#: build/C/man2/sigaltstack.2:154
+#: build/C/man2/sigaltstack.2:156
msgid ""
"An attempt was made to change the alternate signal stack while it was active "
"(i.e., the process was already executing on the current alternate signal "
msgstr ""
#. type: Plain text
-#: build/C/man2/sigaltstack.2:156
+#: build/C/man2/sigaltstack.2:158
msgid "SUSv2, SVr4, POSIX.1-2001."
msgstr ""
#. type: Plain text
-#: build/C/man2/sigaltstack.2:164
+#: build/C/man2/sigaltstack.2:166
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 normal "
msgstr ""
#. type: Plain text
-#: build/C/man2/sigaltstack.2:174
+#: build/C/man2/sigaltstack.2:176
msgid ""
"Establishing an alternate signal stack is useful if a process expects that "
"it may exhaust its standard stack. This may occur, for example, because the "
msgstr ""
#. type: Plain text
-#: build/C/man2/sigaltstack.2:180
+#: build/C/man2/sigaltstack.2:182
msgid ""
"On most hardware architectures supported by Linux, stacks grow downward. "
"B<sigaltstack>() automatically takes account of the direction of stack "
msgstr ""
#. type: Plain text
-#: build/C/man2/sigaltstack.2:189
+#: build/C/man2/sigaltstack.2:191
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 "
msgstr ""
#. type: Plain text
-#: build/C/man2/sigaltstack.2:197
+#: build/C/man2/sigaltstack.2:199
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 "
msgstr ""
#. type: Plain text
-#: build/C/man2/sigaltstack.2:206
+#: build/C/man2/sigaltstack.2:208
msgid ""
"B<sigaltstack>() supersedes the older B<sigstack>() call. For backward "
"compatibility, glibc also provides B<sigstack>(). All new applications "
msgstr ""
#. type: SS
-#: build/C/man2/sigaltstack.2:206 build/C/man3/sigpause.3:59
+#: build/C/man2/sigaltstack.2:208 build/C/man3/sigpause.3:61
#, no-wrap
msgid "History"
msgstr ""
#. type: Plain text
-#: build/C/man2/sigaltstack.2:213
+#: build/C/man2/sigaltstack.2:215
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 "
msgstr ""
#. type: Plain text
-#: build/C/man2/sigaltstack.2:216
+#: build/C/man2/sigaltstack.2:218
msgid "The following code segment demonstrates the use of B<sigaltstack>():"
msgstr ""
#. type: Plain text
-#: build/C/man2/sigaltstack.2:220
+#: build/C/man2/sigaltstack.2:222
#, no-wrap
msgid "stack_t ss;\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/sigaltstack.2:228
+#: build/C/man2/sigaltstack.2:230
#, no-wrap
msgid ""
"ss.ss_sp = malloc(SIGSTKSZ);\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/sigaltstack.2:237
+#: build/C/man2/sigaltstack.2:239
msgid ""
"B<execve>(2), B<setrlimit>(2), B<sigaction>(2), B<siglongjmp>(3), "
"B<sigsetjmp>(3), B<signal>(7)"
msgstr ""
#. type: TH
-#: build/C/man7/sigevent.7:24
+#: build/C/man7/sigevent.7:26
#, no-wrap
msgid "SIGEVENT"
msgstr ""
#. type: TH
-#: build/C/man7/sigevent.7:24 build/C/man3/siginterrupt.3:29
+#: build/C/man7/sigevent.7:26 build/C/man3/siginterrupt.3:31
#, no-wrap
msgid "2011-09-09"
msgstr ""
#. type: Plain text
-#: build/C/man7/sigevent.7:27
+#: build/C/man7/sigevent.7:29
msgid "sigevent - structure for notification from asynchronous routines"
msgstr ""
#. type: Plain text
-#: build/C/man7/sigevent.7:34
+#: build/C/man7/sigevent.7:36
#, no-wrap
msgid ""
"union sigval { /* Data passed with notification */\n"
msgstr ""
#. type: Plain text
-#: build/C/man7/sigevent.7:49
+#: build/C/man7/sigevent.7:51
#, no-wrap
msgid ""
"struct sigevent {\n"
msgstr ""
#. type: Plain text
-#: build/C/man7/sigevent.7:58
+#: build/C/man7/sigevent.7:60
msgid ""
"The I<sigevent> structure is used by various APIs to describe the way a "
"process is to be notified about an event (e.g., completion of an "
msgstr ""
#. type: Plain text
-#: build/C/man7/sigevent.7:66
+#: build/C/man7/sigevent.7:68
msgid ""
"The definition shown in the SYNOPSIS is approximate: some of the fields in "
"the I<sigevent> structure may be defined as part of a union. Programs "
msgstr ""
#. type: Plain text
-#: build/C/man7/sigevent.7:71
+#: build/C/man7/sigevent.7:73
msgid ""
"The I<sigev_notify> field specifies how notification is to be performed. "
"This field can have one of the following values:"
msgstr ""
#. type: TP
-#: build/C/man7/sigevent.7:71 build/C/man2/timer_create.2:105
+#: build/C/man7/sigevent.7:73 build/C/man2/timer_create.2:107
#, no-wrap
msgid "B<SIGEV_NONE>"
msgstr ""
#. type: Plain text
-#: build/C/man7/sigevent.7:74
+#: build/C/man7/sigevent.7:76
msgid "A \"null\" notification: don't do anything when the event occurs."
msgstr ""
#. type: TP
-#: build/C/man7/sigevent.7:74 build/C/man2/timer_create.2:110
+#: build/C/man7/sigevent.7:76 build/C/man2/timer_create.2:112
#, no-wrap
msgid "B<SIGEV_SIGNAL>"
msgstr ""
#. type: Plain text
-#: build/C/man7/sigevent.7:78
+#: build/C/man7/sigevent.7:80
msgid "Notify the process by sending the signal specified in I<sigev_signo>."
msgstr ""
#. type: Plain text
-#: build/C/man7/sigevent.7:85
+#: build/C/man7/sigevent.7:87
msgid ""
"If the signal is caught with a signal handler that was registered using the "
"B<sigaction>(2) B<SA_SIGINFO> flag, then the following fields are set in "
msgstr ""
#. type: Plain text
-#: build/C/man7/sigevent.7:90
+#: build/C/man7/sigevent.7:92
msgid ""
"This field is set to a value that depends on the API delivering the "
"notification."
msgstr ""
#. type: TP
-#: build/C/man7/sigevent.7:90 build/C/man2/wait.2:301
+#: build/C/man7/sigevent.7:92 build/C/man2/wait.2:300
#, no-wrap
msgid "I<si_signo>"
msgstr ""
#. type: Plain text
-#: build/C/man7/sigevent.7:94
+#: build/C/man7/sigevent.7:96
msgid ""
"This field is set to the signal number (i.e., the same value as in "
"I<sigev_signo>)."
msgstr ""
#. type: Plain text
-#: build/C/man7/sigevent.7:98
+#: build/C/man7/sigevent.7:100
msgid "This field is set to the value specified in I<sigev_value>."
msgstr ""
#. type: Plain text
-#: build/C/man7/sigevent.7:103
+#: build/C/man7/sigevent.7:105
msgid ""
"Depending on the API, other fields may also be set in the I<siginfo_t> "
"structure."
msgstr ""
#. type: Plain text
-#: build/C/man7/sigevent.7:106
+#: build/C/man7/sigevent.7:108
msgid ""
"The same information is also available if the signal is accepted using "
"B<sigwaitinfo>(2)."
msgstr ""
#. type: TP
-#: build/C/man7/sigevent.7:106 build/C/man2/timer_create.2:128
+#: build/C/man7/sigevent.7:108 build/C/man2/timer_create.2:130
#, no-wrap
msgid "B<SIGEV_THREAD>"
msgstr ""
#. type: Plain text
-#: build/C/man7/sigevent.7:123
+#: build/C/man7/sigevent.7:125
msgid ""
"Notify the process by invoking I<sigev_notify_function> \"as if\" it were "
"the start function of a new thread. (Among the implementation possibilities "
msgstr ""
#. type: TP
-#: build/C/man7/sigevent.7:123 build/C/man2/timer_create.2:136
+#: build/C/man7/sigevent.7:125 build/C/man2/timer_create.2:138
#, no-wrap
msgid "B<SIGEV_THREAD_ID> (Linux-specific)"
msgstr ""
#. | SIGEV_SIGNAL vs not?
#. type: Plain text
-#: build/C/man7/sigevent.7:128
+#: build/C/man7/sigevent.7:130
msgid "Currently used only by POSIX timers; see B<timer_create>(2)."
msgstr ""
#. type: Plain text
-#: build/C/man7/sigevent.7:130 build/C/man2/sigpending.2:61 build/C/man2/sigprocmask.2:109 build/C/man3/sigqueue.3:114 build/C/man3/sigsetops.3:128 build/C/man2/sigsuspend.2:82 build/C/man3/sigwait.3:79 build/C/man2/sigwaitinfo.2:131 build/C/man2/timer_create.2:193 build/C/man2/timer_delete.2:66 build/C/man2/timer_getoverrun.2:96 build/C/man2/timer_settime.2:205
+#: build/C/man7/sigevent.7:132 build/C/man2/sigpending.2:63 build/C/man2/sigprocmask.2:111 build/C/man3/sigqueue.3:116 build/C/man3/sigsetops.3:130 build/C/man2/sigsuspend.2:84 build/C/man3/sigwait.3:82 build/C/man2/sigwaitinfo.2:135 build/C/man2/timer_create.2:195 build/C/man2/timer_delete.2:69 build/C/man2/timer_getoverrun.2:99 build/C/man2/timer_settime.2:209
msgid "POSIX.1-2001."
msgstr ""
#. type: Plain text
-#: build/C/man7/sigevent.7:140
+#: build/C/man7/sigevent.7:142
msgid ""
"B<timer_create>(2), B<aio_fsync>(3), B<aio_read>(3), B<aio_write>(3), "
"B<getaddrinfo_a>(3), B<lio_listio>(3), B<mq_notify>(3), B<aio>(7), "
msgstr ""
#. type: TH
-#: build/C/man3/siginterrupt.3:29
+#: build/C/man3/siginterrupt.3:31
#, no-wrap
msgid "SIGINTERRUPT"
msgstr ""
#. type: Plain text
-#: build/C/man3/siginterrupt.3:32
+#: build/C/man3/siginterrupt.3:34
msgid "siginterrupt - allow signals to interrupt system calls"
msgstr ""
#. type: Plain text
-#: build/C/man3/siginterrupt.3:37
+#: build/C/man3/siginterrupt.3:39
#, no-wrap
msgid "B<int siginterrupt(int >I<sig>B<, int >I<flag>B<);>\n"
msgstr ""
#. type: Plain text
-#: build/C/man3/siginterrupt.3:45
+#: build/C/man3/siginterrupt.3:47
msgid "B<siginterrupt>():"
msgstr ""
#. type: Plain text
-#: build/C/man3/siginterrupt.3:62
+#: build/C/man3/siginterrupt.3:64
msgid ""
"The B<siginterrupt>() function changes the restart behavior when a system "
"call is interrupted by the signal I<sig>. If the I<flag> argument is false "
msgstr ""
#. type: Plain text
-#: build/C/man3/siginterrupt.3:67
+#: build/C/man3/siginterrupt.3:69
msgid ""
"If the I<flag> argument is true (1) and no data has been transferred, then a "
"system call interrupted by the signal I<sig> will return -1 and I<errno> "
msgstr ""
#. type: Plain text
-#: build/C/man3/siginterrupt.3:71
+#: build/C/man3/siginterrupt.3:73
msgid ""
"If the I<flag> argument is true (1) and data transfer has started, then the "
"system call will be interrupted and will return the actual amount of data "
msgstr ""
#. type: Plain text
-#: build/C/man3/siginterrupt.3:76
+#: build/C/man3/siginterrupt.3:78
msgid ""
"The B<siginterrupt>() function returns 0 on success, or -1 if the signal "
"number I<sig> is invalid."
msgstr ""
#. type: Plain text
-#: build/C/man3/siginterrupt.3:80
+#: build/C/man3/siginterrupt.3:82
msgid "The specified signal number is invalid."
msgstr ""
#. type: Plain text
-#: build/C/man3/siginterrupt.3:89
+#: build/C/man3/siginterrupt.3:91
msgid ""
"4.3BSD, POSIX.1-2001. POSIX.1-2008 marks B<siginterrupt>() as obsolete, "
"recommending the use of B<sigaction>(2) with the B<SA_RESTART> flag "
msgstr ""
#. type: Plain text
-#: build/C/man3/siginterrupt.3:91
+#: build/C/man3/siginterrupt.3:93
msgid "B<signal>(2)"
msgstr ""
#. type: TH
-#: build/C/man2/signal.2:34 build/C/man7/signal.7:44
+#: build/C/man2/signal.2:36 build/C/man7/signal.7:46
#, no-wrap
msgid "SIGNAL"
msgstr ""
#. type: TH
-#: build/C/man2/signal.2:34
+#: build/C/man2/signal.2:36
#, no-wrap
-msgid "2012-05-05"
+msgid "2013-02-09"
msgstr ""
#. type: Plain text
-#: build/C/man2/signal.2:37
+#: build/C/man2/signal.2:39
msgid "signal - ANSI C signal handling"
msgstr ""
#. type: Plain text
-#: build/C/man2/signal.2:43
+#: build/C/man2/signal.2:45
msgid "B<sighandler_t signal(int >I<signum>B<, sighandler_t >I<handler>B<);>"
msgstr ""
#. type: Plain text
-#: build/C/man2/signal.2:52
+#: build/C/man2/signal.2:54
msgid ""
"The behavior of B<signal>() varies across UNIX versions, and has also "
"varied historically across different versions of Linux. B<Avoid its use>: "
msgstr ""
#. type: Plain text
-#: build/C/man2/signal.2:62
+#: build/C/man2/signal.2:64
msgid ""
"B<signal>() sets the disposition of the signal I<signum> to I<handler>, "
"which is either B<SIG_IGN>, B<SIG_DFL>, or the address of a "
msgstr ""
#. type: Plain text
-#: build/C/man2/signal.2:66
+#: build/C/man2/signal.2:68
msgid ""
"If the signal I<signum> is delivered to the process, then one of the "
"following happens:"
msgstr ""
#. type: Plain text
-#: build/C/man2/signal.2:71
+#: build/C/man2/signal.2:73
msgid "If the disposition is set to B<SIG_IGN>, then the signal is ignored."
msgstr ""
#. type: Plain text
-#: build/C/man2/signal.2:78
+#: build/C/man2/signal.2:80
msgid ""
"If the disposition is set to B<SIG_DFL>, then the default action associated "
"with the signal (see B<signal>(7)) occurs."
msgstr ""
#. type: Plain text
-#: build/C/man2/signal.2:89
+#: build/C/man2/signal.2:91
msgid ""
"If the disposition is set to a function, then first either the disposition "
"is reset to B<SIG_DFL>, or the signal is blocked (see I<Portability> below), "
msgstr ""
#. type: Plain text
-#: build/C/man2/signal.2:95
+#: build/C/man2/signal.2:97
msgid "The signals B<SIGKILL> and B<SIGSTOP> cannot be caught or ignored."
msgstr ""
#. type: Plain text
-#: build/C/man2/signal.2:100
+#: build/C/man2/signal.2:102
msgid ""
"B<signal>() returns the previous value of the signal handler, or B<SIG_ERR> "
"on error."
msgstr ""
#. type: Plain text
-#: build/C/man2/signal.2:105
+#: build/C/man2/signal.2:107
msgid "I<signum> is invalid."
msgstr ""
#. type: Plain text
-#: build/C/man2/signal.2:111
+#: build/C/man2/signal.2:113
msgid "The effects of B<signal>() in a multithreaded process are unspecified."
msgstr ""
#. type: Plain text
-#: build/C/man2/signal.2:136
+#: build/C/man2/signal.2:138
msgid ""
"See B<sigaction>(2) for details on what happens when B<SIGCHLD> is set to "
"B<SIG_IGN>."
msgstr ""
#. type: Plain text
-#: build/C/man2/signal.2:141
+#: build/C/man2/signal.2:143
msgid ""
"See B<signal>(7) for a list of the async-signal-safe functions that can be "
"safely called from inside a signal handler."
#. libc4 and libc5 define
#. .IR SignalHandler ;
#. type: Plain text
-#: build/C/man2/signal.2:157
+#: build/C/man2/signal.2:159
msgid ""
"The use of I<sighandler_t> is a GNU extension, exposed if B<_GNU_SOURCE> is "
"defined; glibc also defines (the BSD-derived) I<sig_t> if B<_BSD_SOURCE> is "
msgstr ""
#. type: Plain text
-#: build/C/man2/signal.2:161
+#: build/C/man2/signal.2:163
#, no-wrap
msgid ""
"B<void ( *>I<signal>B<(int >I<signum>B<, void (*>I<handler>B<)(int)) ) "
msgstr ""
#. type: SS
-#: build/C/man2/signal.2:163
+#: build/C/man2/signal.2:165
#, no-wrap
msgid "Portability"
msgstr ""
#. type: Plain text
-#: build/C/man2/signal.2:175
+#: build/C/man2/signal.2:177
msgid ""
"The only portable use of B<signal>() is to set a signal's disposition to "
"B<SIG_DFL> or B<SIG_IGN>. The semantics when using B<signal>() to "
msgstr ""
#. type: Plain text
-#: build/C/man2/signal.2:181
+#: build/C/man2/signal.2:183
msgid ""
"POSIX.1 solved the portability mess by specifying B<sigaction>(2), which "
"provides explicit control of the semantics when a signal handler is invoked; "
msgstr ""
#. type: Plain text
-#: build/C/man2/signal.2:194
+#: build/C/man2/signal.2:193
msgid ""
"In the original UNIX systems, when a handler that was established using "
"B<signal>() was invoked by the delivery of a signal, the disposition of the "
"signal would be reset to B<SIG_DFL>, and the system did not block delivery "
-"of further instances of the signal. System V also provides these semantics "
-"for B<signal>(). This was bad because the signal might be delivered again "
-"before the handler had a chance to reestablish itself. Furthermore, rapid "
-"deliveries of the same signal could result in recursive invocations of the "
-"handler."
+"of further instances of the signal. This is equivalent to calling "
+"B<sigaction>(2) with the following flags:"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/signal.2:195
+#, no-wrap
+msgid " sa.sa_flags = SA_RESETHAND | SA_NODEFER;\n"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/signal.2:202
+msgid ""
+"System V also provides these semantics for B<signal>(). This was bad "
+"because the signal might be delivered again before the handler had a chance "
+"to reestablish itself. Furthermore, rapid deliveries of the same signal "
+"could result in recursive invocations of the handler."
msgstr ""
#. type: Plain text
-#: build/C/man2/signal.2:204
+#: build/C/man2/signal.2:217
msgid ""
-"BSD improved on this situation by changing the semantics of signal handling "
-"(but, unfortunately, silently changed the semantics when establishing a "
-"handler with B<signal>()). On BSD, when a signal handler is invoked, the "
-"signal disposition is not reset, and further instances of the signal are "
-"blocked from being delivered while the handler is executing."
+"BSD improved on this situation, but unfortunately also changed the semantics "
+"of the existing B<signal>() interface while doing so. On BSD, when a "
+"signal handler is invoked, the signal disposition is not reset, and further "
+"instances of the signal are blocked from being delivered while the handler "
+"is executing. Furthermore, certain blocking system calls are automatically "
+"restarted if interrupted by a signal handler (see B<signal>(7)). The BSD "
+"semantics are equivalent to calling B<sigaction>(2) with the following "
+"flags:"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/signal.2:219
+#, no-wrap
+msgid " sa.sa_flags = SA_RESTART;\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/signal.2:206
+#: build/C/man2/signal.2:221
msgid "The situation on Linux is as follows:"
msgstr ""
#. type: Plain text
-#: build/C/man2/signal.2:210
+#: build/C/man2/signal.2:225
msgid "The kernel's B<signal>() system call provides System V semantics."
msgstr ""
#. type: Plain text
-#: build/C/man2/signal.2:226
+#: build/C/man2/signal.2:241
msgid ""
"By default, in glibc 2 and later, the B<signal>() wrapper function does not "
"invoke the kernel system call. Instead, it calls B<sigaction>(2) using "
#. .BR sysv_signal (3)
#. function.
#. type: Plain text
-#: build/C/man2/signal.2:249
+#: build/C/man2/signal.2:264
msgid ""
"On glibc 2 and later, if the B<_BSD_SOURCE> feature test macro is not "
"defined, then B<signal>() provides System V semantics. (The default "
msgstr ""
#. type: Plain text
-#: build/C/man2/signal.2:260
+#: build/C/man2/signal.2:275
msgid ""
"The B<signal>() function in Linux libc4 and libc5 provide System V "
"semantics. If one on a libc5 system includes I<E<lt>bsd/signal.hE<gt>> "
msgstr ""
#. type: Plain text
-#: build/C/man2/signal.2:279
+#: build/C/man2/signal.2:294
msgid ""
"B<kill>(1), B<alarm>(2), B<kill>(2), B<killpg>(2), B<pause>(2), "
"B<sigaction>(2), B<signalfd>(2), B<sigpending>(2), B<sigprocmask>(2), "
msgstr ""
#. type: TH
-#: build/C/man7/signal.7:44
+#: build/C/man7/signal.7:46
#, no-wrap
msgid "2012-05-01"
msgstr ""
#. type: Plain text
-#: build/C/man7/signal.7:47
+#: build/C/man7/signal.7:49
msgid "signal - overview of signals"
msgstr ""
#. type: Plain text
-#: build/C/man7/signal.7:50
+#: build/C/man7/signal.7:52
msgid ""
"Linux supports both POSIX reliable signals (hereinafter \"standard "
"signals\") and POSIX real-time signals."
msgstr ""
#. type: SS
-#: build/C/man7/signal.7:50
+#: build/C/man7/signal.7:52
#, no-wrap
-msgid "Signal Dispositions"
+msgid "Signal dispositions"
msgstr ""
#. type: Plain text
-#: build/C/man7/signal.7:55
+#: build/C/man7/signal.7:57
msgid ""
"Each signal has a current I<disposition>, which determines how the process "
"behaves when it is delivered the signal."
msgstr ""
#. type: Plain text
-#: build/C/man7/signal.7:58
+#: build/C/man7/signal.7:60
msgid ""
"The entries in the \"Action\" column of the tables below specify the default "
"disposition for each signal, as follows:"
msgstr ""
#. type: IP
-#: build/C/man7/signal.7:58
+#: build/C/man7/signal.7:60
#, no-wrap
msgid "Term"
msgstr ""
#. type: Plain text
-#: build/C/man7/signal.7:60
+#: build/C/man7/signal.7:62
msgid "Default action is to terminate the process."
msgstr ""
#. type: IP
-#: build/C/man7/signal.7:60
+#: build/C/man7/signal.7:62
#, no-wrap
msgid "Ign"
msgstr ""
#. type: Plain text
-#: build/C/man7/signal.7:62
+#: build/C/man7/signal.7:64
msgid "Default action is to ignore the signal."
msgstr ""
#. type: IP
-#: build/C/man7/signal.7:62
+#: build/C/man7/signal.7:64
#, no-wrap
msgid "Core"
msgstr ""
#. type: Plain text
-#: build/C/man7/signal.7:65
+#: build/C/man7/signal.7:67
msgid "Default action is to terminate the process and dump core (see B<core>(5))."
msgstr ""
#. type: IP
-#: build/C/man7/signal.7:65
+#: build/C/man7/signal.7:67
#, no-wrap
msgid "Stop"
msgstr ""
#. type: Plain text
-#: build/C/man7/signal.7:67
+#: build/C/man7/signal.7:69
msgid "Default action is to stop the process."
msgstr ""
#. type: IP
-#: build/C/man7/signal.7:67
+#: build/C/man7/signal.7:69
#, no-wrap
msgid "Cont"
msgstr ""
#. type: Plain text
-#: build/C/man7/signal.7:69
+#: build/C/man7/signal.7:71
msgid "Default action is to continue the process if it is currently stopped."
msgstr ""
#. type: Plain text
-#: build/C/man7/signal.7:91
+#: build/C/man7/signal.7:93
msgid ""
"A process can change the disposition of a signal using B<sigaction>(2) or "
"B<signal>(2). (The latter is less portable when establishing a signal "
msgstr ""
#. type: Plain text
-#: build/C/man7/signal.7:95
+#: build/C/man7/signal.7:97
msgid ""
"The signal disposition is a per-process attribute: in a multithreaded "
"application, the disposition of a particular signal is the same for all "
msgstr ""
#. type: SS
-#: build/C/man7/signal.7:103
+#: build/C/man7/signal.7:105
#, no-wrap
-msgid "Sending a Signal"
+msgid "Sending a signal"
msgstr ""
#. type: Plain text
-#: build/C/man7/signal.7:106
+#: build/C/man7/signal.7:108
msgid ""
"The following system calls and library functions allow the caller to send a "
"signal:"
msgstr ""
#. type: TP
-#: build/C/man7/signal.7:106
+#: build/C/man7/signal.7:108
#, no-wrap
msgid "B<raise>(3)"
msgstr ""
#. type: Plain text
-#: build/C/man7/signal.7:109
+#: build/C/man7/signal.7:111
msgid "Sends a signal to the calling thread."
msgstr ""
#. type: Plain text
-#: build/C/man7/signal.7:114
+#: build/C/man7/signal.7:116
msgid ""
"Sends a signal to a specified process, to all members of a specified process "
"group, or to all processes on the system."
msgstr ""
#. type: TP
-#: build/C/man7/signal.7:114
+#: build/C/man7/signal.7:116
#, no-wrap
msgid "B<killpg>(2)"
msgstr ""
#. type: Plain text
-#: build/C/man7/signal.7:117
+#: build/C/man7/signal.7:119
msgid "Sends a signal to all of the members of a specified process group."
msgstr ""
#. type: TP
-#: build/C/man7/signal.7:117
+#: build/C/man7/signal.7:119
#, no-wrap
msgid "B<pthread_kill>(3)"
msgstr ""
#. type: Plain text
-#: build/C/man7/signal.7:121
+#: build/C/man7/signal.7:123
msgid ""
"Sends a signal to a specified POSIX thread in the same process as the "
"caller."
msgstr ""
#. type: TP
-#: build/C/man7/signal.7:121
+#: build/C/man7/signal.7:123
#, no-wrap
msgid "B<tgkill>(2)"
msgstr ""
#. type: Plain text
-#: build/C/man7/signal.7:126
+#: build/C/man7/signal.7:128
msgid ""
"Sends a signal to a specified thread within a specific process. (This is "
"the system call used to implement B<pthread_kill>(3).)"
msgstr ""
#. type: Plain text
-#: build/C/man7/signal.7:129
+#: build/C/man7/signal.7:131
msgid "Sends a real-time signal with accompanying data to a specified process."
msgstr ""
#. type: SS
-#: build/C/man7/signal.7:129
+#: build/C/man7/signal.7:131
#, no-wrap
-msgid "Waiting for a Signal to be Caught"
+msgid "Waiting for a signal to be caught"
msgstr ""
#. type: Plain text
-#: build/C/man7/signal.7:133
+#: build/C/man7/signal.7:135
msgid ""
"The following system calls suspend execution of the calling process or "
"thread until a signal is caught (or an unhandled signal terminates the "
msgstr ""
#. type: TP
-#: build/C/man7/signal.7:133
+#: build/C/man7/signal.7:135
#, no-wrap
msgid "B<pause>(2)"
msgstr ""
#. type: Plain text
-#: build/C/man7/signal.7:136
+#: build/C/man7/signal.7:138
msgid "Suspends execution until any signal is caught."
msgstr ""
#. type: TP
-#: build/C/man7/signal.7:136
+#: build/C/man7/signal.7:138
#, no-wrap
msgid "B<sigsuspend>(2)"
msgstr ""
#. type: Plain text
-#: build/C/man7/signal.7:140
+#: build/C/man7/signal.7:142
msgid ""
"Temporarily changes the signal mask (see below) and suspends execution until "
"one of the unmasked signals is caught."
msgstr ""
#. type: SS
-#: build/C/man7/signal.7:140
+#: build/C/man7/signal.7:142
#, no-wrap
-msgid "Synchronously Accepting a Signal"
+msgid "Synchronously accepting a signal"
msgstr ""
#. type: Plain text
-#: build/C/man7/signal.7:147
+#: build/C/man7/signal.7:149
msgid ""
"Rather than asynchronously catching a signal via a signal handler, it is "
"possible to synchronously accept the signal, that is, to block execution "
msgstr ""
#. type: Plain text
-#: build/C/man7/signal.7:155
+#: build/C/man7/signal.7:157
msgid ""
"B<sigwaitinfo>(2), B<sigtimedwait>(2), and B<sigwait>(3) suspend execution "
"until one of the signals in a specified set is delivered. Each of these "
msgstr ""
#. type: Plain text
-#: build/C/man7/signal.7:168
+#: build/C/man7/signal.7:170
msgid ""
"B<signalfd>(2) returns a file descriptor that can be used to read "
"information about signals that are delivered to the caller. Each B<read>(2) "
msgstr ""
#. type: SS
-#: build/C/man7/signal.7:168
+#: build/C/man7/signal.7:170
#, no-wrap
-msgid "Signal Mask and Pending Signals"
+msgid "Signal mask and pending signals"
msgstr ""
#. type: Plain text
-#: build/C/man7/signal.7:175
+#: build/C/man7/signal.7:177
msgid ""
"A signal may be I<blocked>, which means that it will not be delivered until "
"it is later unblocked. Between the time when it is generated and when it is "
msgstr ""
#. type: Plain text
-#: build/C/man7/signal.7:184
+#: build/C/man7/signal.7:186
msgid ""
"Each thread in a process has an independent I<signal mask>, which indicates "
"the set of signals that the thread is currently blocking. A thread can "
msgstr ""
#. type: Plain text
-#: build/C/man7/signal.7:190 build/C/man2/sigprocmask.2:121
+#: build/C/man7/signal.7:192 build/C/man2/sigprocmask.2:123
msgid ""
"A child created via B<fork>(2) inherits a copy of its parent's signal mask; "
"the signal mask is preserved across B<execve>(2)."
msgstr ""
#. type: Plain text
-#: build/C/man7/signal.7:207
+#: build/C/man7/signal.7:209
msgid ""
"A signal may be generated (and thus pending) for a process as a whole "
"(e.g., when sent using B<kill>(2)) or for a specific thread (e.g., certain "
msgstr ""
#. type: Plain text
-#: build/C/man7/signal.7:214
+#: build/C/man7/signal.7:216
msgid ""
"A thread can obtain the set of signals that it currently has pending using "
"B<sigpending>(2). This set will consist of the union of the set of pending "
msgstr ""
#. type: Plain text
-#: build/C/man7/signal.7:220 build/C/man2/sigpending.2:76
+#: build/C/man7/signal.7:222 build/C/man2/sigpending.2:78
msgid ""
"A child created via B<fork>(2) initially has an empty pending signal set; "
"the pending signal set is preserved across an B<execve>(2)."
msgstr ""
#. type: SS
-#: build/C/man7/signal.7:220
+#: build/C/man7/signal.7:222
#, no-wrap
-msgid "Standard Signals"
+msgid "Standard signals"
msgstr ""
#. type: Plain text
-#: build/C/man7/signal.7:232
+#: build/C/man7/signal.7:234
msgid ""
"Linux supports the standard signals listed below. Several signal numbers "
"are architecture-dependent, as indicated in the \"Value\" column. (Where "
"three values are given, the first one is usually valid for alpha and sparc, "
"the middle one for x86, arm, and most other architectures, and the last one "
-"for mips. (Values for parisc are I<not> shown; see the kernel source for "
-"signal numbering on that architecture.) A - denotes that a signal is absent "
-"on the corresponding architecture.)"
+"for mips. (Values for parisc are I<not> shown; see the Linux kernel source "
+"for signal numbering on that architecture.) A - denotes that a signal is "
+"absent on the corresponding architecture.)"
msgstr ""
#. type: Plain text
-#: build/C/man7/signal.7:234
+#: build/C/man7/signal.7:236
msgid "First the signals described in the original POSIX.1-1990 standard."
msgstr ""
#. type: tbl table
-#: build/C/man7/signal.7:238 build/C/man7/signal.7:274 build/C/man7/signal.7:303
+#: build/C/man7/signal.7:240 build/C/man7/signal.7:276 build/C/man7/signal.7:305
#, no-wrap
msgid "Signal\tValue\tAction\tComment\n"
msgstr ""
#. type: tbl table
-#: build/C/man7/signal.7:239
+#: build/C/man7/signal.7:241
#, no-wrap
msgid "SIGHUP\t\\01\tTerm\tHangup detected on controlling terminal\n"
msgstr ""
#. type: tbl table
-#: build/C/man7/signal.7:240
+#: build/C/man7/signal.7:242
#, no-wrap
msgid "\t\t\tor death of controlling process\n"
msgstr ""
#. type: tbl table
-#: build/C/man7/signal.7:241
+#: build/C/man7/signal.7:243
#, no-wrap
msgid "SIGINT\t\\02\tTerm\tInterrupt from keyboard\n"
msgstr ""
#. type: tbl table
-#: build/C/man7/signal.7:242
+#: build/C/man7/signal.7:244
#, no-wrap
msgid "SIGQUIT\t\\03\tCore\tQuit from keyboard\n"
msgstr ""
#. type: tbl table
-#: build/C/man7/signal.7:243
+#: build/C/man7/signal.7:245
#, no-wrap
msgid "SIGILL\t\\04\tCore\tIllegal Instruction\n"
msgstr ""
#. type: tbl table
-#: build/C/man7/signal.7:244
+#: build/C/man7/signal.7:246
#, no-wrap
msgid "SIGABRT\t\\06\tCore\tAbort signal from B<abort>(3)\n"
msgstr ""
#. type: tbl table
-#: build/C/man7/signal.7:245
+#: build/C/man7/signal.7:247
#, no-wrap
msgid "SIGFPE\t\\08\tCore\tFloating point exception\n"
msgstr ""
#. type: tbl table
-#: build/C/man7/signal.7:246
+#: build/C/man7/signal.7:248
#, no-wrap
msgid "SIGKILL\t\\09\tTerm\tKill signal\n"
msgstr ""
#. type: tbl table
-#: build/C/man7/signal.7:247
+#: build/C/man7/signal.7:249
#, no-wrap
msgid "SIGSEGV\t11\tCore\tInvalid memory reference\n"
msgstr ""
#. type: tbl table
-#: build/C/man7/signal.7:248
+#: build/C/man7/signal.7:250
#, no-wrap
msgid "SIGPIPE\t13\tTerm\tBroken pipe: write to pipe with no\n"
msgstr ""
#. type: tbl table
-#: build/C/man7/signal.7:249
+#: build/C/man7/signal.7:251
#, no-wrap
msgid "\t\t\treaders\n"
msgstr ""
#. type: tbl table
-#: build/C/man7/signal.7:250
+#: build/C/man7/signal.7:252
#, no-wrap
msgid "SIGALRM\t14\tTerm\tTimer signal from B<alarm>(2)\n"
msgstr ""
#. type: tbl table
-#: build/C/man7/signal.7:251
+#: build/C/man7/signal.7:253
#, no-wrap
msgid "SIGTERM\t15\tTerm\tTermination signal\n"
msgstr ""
#. type: tbl table
-#: build/C/man7/signal.7:252
+#: build/C/man7/signal.7:254
#, no-wrap
msgid "SIGUSR1\t30,10,16\tTerm\tUser-defined signal 1\n"
msgstr ""
#. type: tbl table
-#: build/C/man7/signal.7:253
+#: build/C/man7/signal.7:255
#, no-wrap
msgid "SIGUSR2\t31,12,17\tTerm\tUser-defined signal 2\n"
msgstr ""
#. type: tbl table
-#: build/C/man7/signal.7:254
+#: build/C/man7/signal.7:256
#, no-wrap
msgid "SIGCHLD\t20,17,18\tIgn\tChild stopped or terminated\n"
msgstr ""
#. type: tbl table
-#: build/C/man7/signal.7:255
+#: build/C/man7/signal.7:257
#, no-wrap
msgid "SIGCONT\t19,18,25\tCont\tContinue if stopped\n"
msgstr ""
#. type: tbl table
-#: build/C/man7/signal.7:256
+#: build/C/man7/signal.7:258
#, no-wrap
msgid "SIGSTOP\t17,19,23\tStop\tStop process\n"
msgstr ""
#. type: tbl table
-#: build/C/man7/signal.7:257
+#: build/C/man7/signal.7:259
#, no-wrap
-msgid "SIGTSTP\t18,20,24\tStop\tStop typed at tty\n"
+msgid "SIGTSTP\t18,20,24\tStop\tStop typed at terminal\n"
msgstr ""
#. type: tbl table
-#: build/C/man7/signal.7:258
+#: build/C/man7/signal.7:260
#, no-wrap
-msgid "SIGTTIN\t21,21,26\tStop\ttty input for background process\n"
+msgid "SIGTTIN\t21,21,26\tStop\tTerminal input for background process\n"
msgstr ""
#. type: tbl table
-#: build/C/man7/signal.7:259
+#: build/C/man7/signal.7:261
#, no-wrap
-msgid "SIGTTOU\t22,22,27\tStop\ttty output for background process\n"
+msgid "SIGTTOU\t22,22,27\tStop\tTerminal output for background process\n"
msgstr ""
#. type: Plain text
-#: build/C/man7/signal.7:267
+#: build/C/man7/signal.7:269
msgid "The signals B<SIGKILL> and B<SIGSTOP> cannot be caught, blocked, or ignored."
msgstr ""
#. type: Plain text
-#: build/C/man7/signal.7:270
+#: build/C/man7/signal.7:272
msgid ""
"Next the signals not in the POSIX.1-1990 standard but described in SUSv2 and "
"POSIX.1-2001."
msgstr ""
#. type: tbl table
-#: build/C/man7/signal.7:275
+#: build/C/man7/signal.7:277
#, no-wrap
msgid "SIGBUS\t10,7,10\tCore\tBus error (bad memory access)\n"
msgstr ""
#. type: tbl table
-#: build/C/man7/signal.7:276
+#: build/C/man7/signal.7:278
#, no-wrap
msgid "SIGPOLL\t\tTerm\tPollable event (Sys V).\n"
msgstr ""
#. type: tbl table
-#: build/C/man7/signal.7:277
+#: build/C/man7/signal.7:279
#, no-wrap
msgid "\t\t\tSynonym for B<SIGIO>\n"
msgstr ""
#. type: tbl table
-#: build/C/man7/signal.7:278
+#: build/C/man7/signal.7:280
#, no-wrap
msgid "SIGPROF\t27,27,29\tTerm\tProfiling timer expired\n"
msgstr ""
#. type: tbl table
-#: build/C/man7/signal.7:279
+#: build/C/man7/signal.7:281
#, no-wrap
msgid "SIGSYS\t12,31,12\tCore\tBad argument to routine (SVr4)\n"
msgstr ""
#. type: tbl table
-#: build/C/man7/signal.7:280
+#: build/C/man7/signal.7:282
#, no-wrap
msgid "SIGTRAP\t5\tCore\tTrace/breakpoint trap\n"
msgstr ""
#. type: tbl table
-#: build/C/man7/signal.7:281
+#: build/C/man7/signal.7:283
#, no-wrap
msgid "SIGURG\t16,23,21\tIgn\tUrgent condition on socket (4.2BSD)\n"
msgstr ""
#. type: tbl table
-#: build/C/man7/signal.7:282
+#: build/C/man7/signal.7:284
#, no-wrap
msgid "SIGVTALRM\t26,26,28\tTerm\tVirtual alarm clock (4.2BSD)\n"
msgstr ""
#. type: tbl table
-#: build/C/man7/signal.7:283
+#: build/C/man7/signal.7:285
#, no-wrap
msgid "SIGXCPU\t24,24,30\tCore\tCPU time limit exceeded (4.2BSD)\n"
msgstr ""
#. type: tbl table
-#: build/C/man7/signal.7:284
+#: build/C/man7/signal.7:286
#, no-wrap
msgid "SIGXFSZ\t25,25,31\tCore\tFile size limit exceeded (4.2BSD)\n"
msgstr ""
#. type: Plain text
-#: build/C/man7/signal.7:297
+#: build/C/man7/signal.7:299
msgid ""
"Up to and including Linux 2.2, the default behavior for B<SIGSYS>, "
"B<SIGXCPU>, B<SIGXFSZ>, and (on architectures other than SPARC and MIPS) "
msgstr ""
#. type: Plain text
-#: build/C/man7/signal.7:299
+#: build/C/man7/signal.7:301
msgid "Next various other signals."
msgstr ""
#. type: tbl table
-#: build/C/man7/signal.7:304
+#: build/C/man7/signal.7:306
#, no-wrap
msgid "SIGIOT\t6\tCore\tIOT trap. A synonym for B<SIGABRT>\n"
msgstr ""
#. type: tbl table
-#: build/C/man7/signal.7:305
+#: build/C/man7/signal.7:307
#, no-wrap
msgid "SIGEMT\t7,-,7\tTerm\n"
msgstr ""
#. type: tbl table
-#: build/C/man7/signal.7:306
+#: build/C/man7/signal.7:308
#, no-wrap
msgid "SIGSTKFLT\t-,16,-\tTerm\tStack fault on coprocessor (unused)\n"
msgstr ""
#. type: tbl table
-#: build/C/man7/signal.7:307
+#: build/C/man7/signal.7:309
#, no-wrap
msgid "SIGIO\t23,29,22\tTerm\tI/O now possible (4.2BSD)\n"
msgstr ""
#. type: tbl table
-#: build/C/man7/signal.7:308
+#: build/C/man7/signal.7:310
#, no-wrap
msgid "SIGCLD\t-,-,18\tIgn\tA synonym for B<SIGCHLD>\n"
msgstr ""
#. type: tbl table
-#: build/C/man7/signal.7:309
+#: build/C/man7/signal.7:311
#, no-wrap
msgid "SIGPWR\t29,30,19\tTerm\tPower failure (System V)\n"
msgstr ""
#. type: tbl table
-#: build/C/man7/signal.7:310
+#: build/C/man7/signal.7:312
#, no-wrap
msgid "SIGINFO\t29,-,-\t\tA synonym for B<SIGPWR>\n"
msgstr ""
#. type: tbl table
-#: build/C/man7/signal.7:311
+#: build/C/man7/signal.7:313
#, no-wrap
msgid "SIGLOST\t-,-,-\tTerm\tFile lock lost (unused)\n"
msgstr ""
#. type: tbl table
-#: build/C/man7/signal.7:312
+#: build/C/man7/signal.7:314
#, no-wrap
msgid "SIGWINCH\t28,28,20\tIgn\tWindow resize signal (4.3BSD, Sun)\n"
msgstr ""
#. type: tbl table
-#: build/C/man7/signal.7:313
+#: build/C/man7/signal.7:315
#, no-wrap
msgid "SIGUNUSED\t-,31,-\tCore\tSynonymous with B<SIGSYS>\n"
msgstr ""
#. type: Plain text
-#: build/C/man7/signal.7:323
+#: build/C/man7/signal.7:325
msgid "(Signal 29 is B<SIGINFO> / B<SIGPWR> on an alpha but B<SIGLOST> on a sparc.)"
msgstr ""
#. type: Plain text
-#: build/C/man7/signal.7:329
+#: build/C/man7/signal.7:331
msgid ""
"B<SIGEMT> is not specified in POSIX.1-2001, but nevertheless appears on most "
"other UNIX systems, where its default action is typically to terminate the "
msgstr ""
#. type: Plain text
-#: build/C/man7/signal.7:333
+#: build/C/man7/signal.7:335
msgid ""
"B<SIGPWR> (which is not specified in POSIX.1-2001) is typically ignored by "
"default on those other UNIX systems where it appears."
msgstr ""
#. type: Plain text
-#: build/C/man7/signal.7:337
+#: build/C/man7/signal.7:339
msgid ""
"B<SIGIO> (which is not specified in POSIX.1-2001) is ignored by default on "
"several other UNIX systems."
#. parisc is the only exception: SIGSYS is 12, SIGUNUSED is 31
#. type: Plain text
-#: build/C/man7/signal.7:344
+#: build/C/man7/signal.7:346
msgid ""
"Where defined, B<SIGUNUSED> is synonymous with B<SIGSYS> on most "
"architectures."
msgstr ""
#. type: SS
-#: build/C/man7/signal.7:344
+#: build/C/man7/signal.7:346
#, no-wrap
-msgid "Real-time Signals"
+msgid "Real-time signals"
msgstr ""
#. type: Plain text
-#: build/C/man7/signal.7:354
+#: build/C/man7/signal.7:356
msgid ""
"Linux supports real-time signals as originally defined in the POSIX.1b "
"real-time extensions (and now included in POSIX.1-2001). The range of "
msgstr ""
#. type: Plain text
-#: build/C/man7/signal.7:376
+#: build/C/man7/signal.7:378
msgid ""
"The Linux kernel supports a range of 32 different real-time signals, "
"numbered 33 to 64. However, the glibc POSIX threads implementation "
msgstr ""
#. type: Plain text
-#: build/C/man7/signal.7:380
+#: build/C/man7/signal.7:382
msgid ""
"Unlike standard signals, real-time signals have no predefined meanings: the "
"entire set of real-time signals can be used for application-defined "
msgstr ""
#. type: Plain text
-#: build/C/man7/signal.7:383
+#: build/C/man7/signal.7:385
msgid ""
"The default action for an unhandled real-time signal is to terminate the "
"receiving process."
msgstr ""
#. type: Plain text
-#: build/C/man7/signal.7:385
+#: build/C/man7/signal.7:387
msgid "Real-time signals are distinguished by the following:"
msgstr ""
#. type: Plain text
-#: build/C/man7/signal.7:389
+#: build/C/man7/signal.7:391
msgid ""
"Multiple instances of real-time signals can be queued. By contrast, if "
"multiple instances of a standard signal are delivered while that signal is "
msgstr ""
#. type: Plain text
-#: build/C/man7/signal.7:409
+#: build/C/man7/signal.7:411
msgid ""
"If the signal is sent using B<sigqueue>(3), an accompanying value (either an "
"integer or a pointer) can be sent with the signal. If the receiving process "
msgstr ""
#. type: Plain text
-#: build/C/man7/signal.7:418
+#: build/C/man7/signal.7:420
msgid ""
"Real-time signals are delivered in a guaranteed order. Multiple real-time "
"signals of the same type are delivered in the order they were sent. If "
msgstr ""
#. type: Plain text
-#: build/C/man7/signal.7:423
+#: build/C/man7/signal.7:425
msgid ""
"If both standard and real-time signals are pending for a process, POSIX "
"leaves it unspecified which is delivered first. Linux, like many other "
msgstr ""
#. type: Plain text
-#: build/C/man7/signal.7:446
+#: build/C/man7/signal.7:448
msgid ""
"According to POSIX, an implementation should permit at least "
"B<_POSIX_SIGQUEUE_MAX> (32) real-time signals to be queued to a process. "
msgstr ""
#. type: SS
-#: build/C/man7/signal.7:446
+#: build/C/man7/signal.7:448
#, no-wrap
msgid "Async-signal-safe functions"
msgstr ""
#. type: Plain text
-#: build/C/man7/signal.7:455
+#: build/C/man7/signal.7:457
msgid ""
"A signal handler function must be very careful, since processing elsewhere "
"may be interrupted at some arbitrary point in the execution of the program. "
msgstr ""
#. type: Plain text
-#: build/C/man7/signal.7:459
+#: build/C/man7/signal.7:461
msgid ""
"POSIX.1-2004 (also known as POSIX.1-2001 Technical Corrigendum 2) requires "
"an implementation to guarantee that the following functions can be safely "
msgstr ""
#. type: Plain text
-#: build/C/man7/signal.7:580
+#: build/C/man7/signal.7:582
#, no-wrap
msgid ""
"_Exit()\n"
msgstr ""
#. type: Plain text
-#: build/C/man7/signal.7:585
+#: build/C/man7/signal.7:587
msgid ""
"POSIX.1-2008 removes fpathconf(), pathconf(), and sysconf() from the above "
"list, and adds the following functions:"
msgstr ""
#. type: Plain text
-#: build/C/man7/signal.7:608
+#: build/C/man7/signal.7:610
#, no-wrap
msgid ""
"execl()\n"
msgstr ""
#. type: SS
-#: build/C/man7/signal.7:610
+#: build/C/man7/signal.7:612
#, no-wrap
-msgid "Interruption of System Calls and Library Functions by Signal Handlers"
+msgid "Interruption of system calls and library functions by signal handlers"
msgstr ""
#. type: Plain text
-#: build/C/man7/signal.7:613
+#: build/C/man7/signal.7:615
msgid ""
"If a signal handler is invoked while a system call or library function call "
"is blocked, then either:"
msgstr ""
#. type: Plain text
-#: build/C/man7/signal.7:615
+#: build/C/man7/signal.7:617
msgid "the call is automatically restarted after the signal handler returns; or"
msgstr ""
#. type: Plain text
-#: build/C/man7/signal.7:618
+#: build/C/man7/signal.7:620
msgid "the call fails with the error B<EINTR>."
msgstr ""
#. type: Plain text
-#: build/C/man7/signal.7:626
+#: build/C/man7/signal.7:628
msgid ""
"Which of these two behaviors occurs depends on the interface and whether or "
"not the signal handler was established using the B<SA_RESTART> flag (see "
#. The following system calls use ERESTARTSYS,
#. so that they are restartable
#. type: Plain text
-#: build/C/man7/signal.7:635
+#: build/C/man7/signal.7:637
msgid ""
"If a blocked call to one of the following interfaces is interrupted by a "
"signal handler, then the call will be automatically restarted after the "
msgstr ""
#. type: Plain text
-#: build/C/man7/signal.7:651
+#: build/C/man7/signal.7:653
msgid ""
"B<read>(2), B<readv>(2), B<write>(2), B<writev>(2), and B<ioctl>(2) calls "
"on \"slow\" devices. A \"slow\" device is one where the I/O call may block "
msgstr ""
#. type: Plain text
-#: build/C/man7/signal.7:655
+#: build/C/man7/signal.7:657
msgid "B<open>(2), if it can block (e.g., when opening a FIFO; see B<fifo>(7))."
msgstr ""
#. type: Plain text
-#: build/C/man7/signal.7:662
+#: build/C/man7/signal.7:664
msgid "B<wait>(2), B<wait3>(2), B<wait4>(2), B<waitid>(2), and B<waitpid>(2)."
msgstr ""
#. automatically restarted, and they show the stop/cont behavior
#. described below. (Verified from 2.6.26 source, and by experiment; mtk)
#. type: Plain text
-#: build/C/man7/signal.7:678
+#: build/C/man7/signal.7:680
msgid ""
"Socket interfaces: B<accept>(2), B<connect>(2), B<recv>(2), B<recvfrom>(2), "
"B<recvmsg>(2), B<send>(2), B<sendto>(2), and B<sendmsg>(2), unless a timeout "
msgstr ""
#. type: Plain text
-#: build/C/man7/signal.7:684
+#: build/C/man7/signal.7:686
msgid "File locking interfaces: B<flock>(2) and B<fcntl>(2) B<F_SETLKW>."
msgstr ""
#. type: Plain text
-#: build/C/man7/signal.7:691
+#: build/C/man7/signal.7:693
msgid ""
"POSIX message queue interfaces: B<mq_receive>(3), B<mq_timedreceive>(3), "
"B<mq_send>(3), and B<mq_timedsend>(3)."
msgstr ""
#. type: Plain text
-#: build/C/man7/signal.7:696
+#: build/C/man7/signal.7:698
msgid ""
"B<futex>(2) B<FUTEX_WAIT> (since Linux 2.6.22; beforehand, always failed "
"with B<EINTR>)."
msgstr ""
#. type: Plain text
-#: build/C/man7/signal.7:703
+#: build/C/man7/signal.7:705
msgid ""
"POSIX semaphore interfaces: B<sem_wait>(3) and B<sem_timedwait>(3) (since "
"Linux 2.6.22; beforehand, always failed with B<EINTR>)."
#. These are the system calls that give EINTR or ERESTARTNOHAND
#. on interruption by a signal handler.
#. type: Plain text
-#: build/C/man7/signal.7:714
+#: build/C/man7/signal.7:716
msgid ""
"The following interfaces are never restarted after being interrupted by a "
"signal handler, regardless of the use of B<SA_RESTART>; they always fail "
msgstr ""
#. type: Plain text
-#: build/C/man7/signal.7:734 build/C/man7/signal.7:808
+#: build/C/man7/signal.7:736 build/C/man7/signal.7:810
msgid ""
"Socket interfaces, when a timeout has been set on the socket using "
"B<setsockopt>(2): B<accept>(2), B<recv>(2), B<recvfrom>(2), and "
msgstr ""
#. type: Plain text
-#: build/C/man7/signal.7:741
+#: build/C/man7/signal.7:743
msgid ""
"Interfaces used to wait for signals: B<pause>(2), B<sigsuspend>(2), "
"B<sigtimedwait>(2), and B<sigwaitinfo>(2)."
msgstr ""
#. type: Plain text
-#: build/C/man7/signal.7:750
+#: build/C/man7/signal.7:752
msgid ""
"File descriptor multiplexing interfaces: B<epoll_wait>(2), "
"B<epoll_pwait>(2), B<poll>(2), B<ppoll>(2), B<select>(2), and B<pselect>(2)."
#. On some other systems, SA_RESTART does restart these system calls
#. type: Plain text
-#: build/C/man7/signal.7:758
+#: build/C/man7/signal.7:760
msgid ""
"System V IPC interfaces: B<msgrcv>(2), B<msgsnd>(2), B<semop>(2), and "
"B<semtimedop>(2)."
msgstr ""
#. type: Plain text
-#: build/C/man7/signal.7:764
+#: build/C/man7/signal.7:766
msgid "Sleep interfaces: B<clock_nanosleep>(2), B<nanosleep>(2), and B<usleep>(3)."
msgstr ""
#. type: Plain text
-#: build/C/man7/signal.7:769 build/C/man7/signal.7:822
+#: build/C/man7/signal.7:771 build/C/man7/signal.7:824
msgid "B<read>(2) from an B<inotify>(7) file descriptor."
msgstr ""
#. type: Plain text
-#: build/C/man7/signal.7:771
+#: build/C/man7/signal.7:773
msgid "B<io_getevents>(2)."
msgstr ""
#. type: Plain text
-#: build/C/man7/signal.7:777
+#: build/C/man7/signal.7:779
msgid ""
"The B<sleep>(3) function is also never restarted if interrupted by a "
"handler, but gives a success return: the number of seconds remaining to "
msgstr ""
#. type: SS
-#: build/C/man7/signal.7:777
+#: build/C/man7/signal.7:779
#, no-wrap
-msgid "Interruption of System Calls and Library Functions by Stop Signals"
+msgid "Interruption of system calls and library functions by stop signals"
msgstr ""
#. type: Plain text
-#: build/C/man7/signal.7:786
+#: build/C/man7/signal.7:788
msgid ""
"On Linux, even in the absence of signal handlers, certain blocking "
"interfaces can fail with the error B<EINTR> after the process is stopped by "
msgstr ""
#. type: Plain text
-#: build/C/man7/signal.7:788
+#: build/C/man7/signal.7:790
msgid "The Linux interfaces that display this behavior are:"
msgstr ""
#. type: Plain text
-#: build/C/man7/signal.7:811
+#: build/C/man7/signal.7:813
msgid "B<epoll_wait>(2), B<epoll_pwait>(2)."
msgstr ""
#. type: Plain text
-#: build/C/man7/signal.7:814
+#: build/C/man7/signal.7:816
msgid "B<semop>(2), B<semtimedop>(2)."
msgstr ""
#. type: Plain text
-#: build/C/man7/signal.7:817
+#: build/C/man7/signal.7:819
msgid "B<sigtimedwait>(2), B<sigwaitinfo>(2)."
msgstr ""
#. type: Plain text
-#: build/C/man7/signal.7:828
+#: build/C/man7/signal.7:830
msgid ""
"Linux 2.6.21 and earlier: B<futex>(2) B<FUTEX_WAIT>, B<sem_timedwait>(3), "
"B<sem_wait>(3)."
msgstr ""
#. type: Plain text
-#: build/C/man7/signal.7:832
+#: build/C/man7/signal.7:834
msgid "Linux 2.6.8 and earlier: B<msgrcv>(2), B<msgsnd>(2)."
msgstr ""
#. type: Plain text
-#: build/C/man7/signal.7:835
+#: build/C/man7/signal.7:837
msgid "Linux 2.4 and earlier: B<nanosleep>(2)."
msgstr ""
#. signal 29 is
#. .BR SIGLOST .
#. type: Plain text
-#: build/C/man7/signal.7:848
+#: build/C/man7/signal.7:850
msgid "POSIX.1, except as noted."
msgstr ""
#. type: Plain text
-#: build/C/man7/signal.7:881
+#: build/C/man7/signal.7:883
msgid ""
"B<kill>(1), B<getrlimit>(2), B<kill>(2), B<killpg>(2), "
"B<rt_sigqueueinfo>(2), B<setitimer>(2), B<setrlimit>(2), B<sgetmask>(2), "
msgstr ""
#. type: TH
-#: build/C/man2/signalfd.2:19
+#: build/C/man2/signalfd.2:20
#, no-wrap
msgid "SIGNALFD"
msgstr ""
#. type: TH
-#: build/C/man2/signalfd.2:19
+#: build/C/man2/signalfd.2:20
#, no-wrap
msgid "2009-01-13"
msgstr ""
#. type: Plain text
-#: build/C/man2/signalfd.2:22
+#: build/C/man2/signalfd.2:23
msgid "signalfd - create a file descriptor for accepting signals"
msgstr ""
#. type: Plain text
-#: build/C/man2/signalfd.2:24
+#: build/C/man2/signalfd.2:25
msgid "B<#include E<lt>sys/signalfd.hE<gt>>"
msgstr ""
#. type: Plain text
-#: build/C/man2/signalfd.2:26
+#: build/C/man2/signalfd.2:27
msgid "B<int signalfd(int >I<fd>B<, const sigset_t *>I<mask>B<, int >I<flags>B<);>"
msgstr ""
#. type: Plain text
-#: build/C/man2/signalfd.2:37
+#: build/C/man2/signalfd.2:38
msgid ""
"B<signalfd>() creates a file descriptor that can be used to accept signals "
"targeted at the caller. This provides an alternative to the use of a signal "
msgstr ""
#. type: Plain text
-#: build/C/man2/signalfd.2:57
+#: build/C/man2/signalfd.2:58
msgid ""
"The I<mask> argument specifies the set of signals that the caller wishes to "
"accept via the file descriptor. This argument is a signal set whose "
msgstr ""
#. type: Plain text
-#: build/C/man2/signalfd.2:71
+#: build/C/man2/signalfd.2:72
msgid ""
"If the I<fd> argument is -1, then the call creates a new file descriptor and "
"associates the signal set specified in I<mask> with that descriptor. If "
msgstr ""
#. type: Plain text
-#: build/C/man2/signalfd.2:76
+#: build/C/man2/signalfd.2:77
msgid ""
"Starting with Linux 2.6.27, the following values may be bitwise ORed in "
"I<flags> to change the behaviour of B<signalfd>():"
msgstr ""
#. type: TP
-#: build/C/man2/signalfd.2:76
+#: build/C/man2/signalfd.2:77
#, no-wrap
msgid "B<SFD_NONBLOCK>"
msgstr ""
#. type: TP
-#: build/C/man2/signalfd.2:84
+#: build/C/man2/signalfd.2:85
#, no-wrap
msgid "B<SFD_CLOEXEC>"
msgstr ""
#. type: Plain text
-#: build/C/man2/signalfd.2:101
+#: build/C/man2/signalfd.2:102
msgid ""
"B<signalfd>() returns a file descriptor that supports the following "
"operations:"
msgstr ""
#. type: Plain text
-#: build/C/man2/signalfd.2:120
+#: build/C/man2/signalfd.2:121
msgid ""
"If one or more of the signals specified in I<mask> is pending for the "
"process, then the buffer supplied to B<read>(2) is used to return one or "
msgstr ""
#. type: Plain text
-#: build/C/man2/signalfd.2:128
+#: build/C/man2/signalfd.2:129
msgid ""
"As a consequence of the B<read>(2), the signals are consumed, so that they "
"are no longer pending for the process (i.e., will not be caught by signal "
msgstr ""
#. type: Plain text
-#: build/C/man2/signalfd.2:139
+#: build/C/man2/signalfd.2:140
msgid ""
"If none of the signals in I<mask> is pending for the process, then the "
"B<read>(2) either blocks until one of the signals in I<mask> is generated "
msgstr ""
#. type: Plain text
-#: build/C/man2/signalfd.2:152
+#: build/C/man2/signalfd.2:153
msgid ""
"The file descriptor is readable (the B<select>(2) I<readfds> argument; the "
"B<poll>(2) B<POLLIN> flag) if one or more of the signals in I<mask> is "
msgstr ""
#. type: Plain text
-#: build/C/man2/signalfd.2:159
+#: build/C/man2/signalfd.2:160
msgid ""
"The signalfd file descriptor also supports the other file-descriptor "
"multiplexing APIs: B<pselect>(2), B<ppoll>(2), and B<epoll>(7)."
msgstr ""
#. type: Plain text
-#: build/C/man2/signalfd.2:164
+#: build/C/man2/signalfd.2:165
msgid ""
"When the file descriptor is no longer required it should be closed. When "
"all file descriptors associated with the same signalfd object have been "
msgstr ""
#. type: SS
-#: build/C/man2/signalfd.2:164
+#: build/C/man2/signalfd.2:165
#, no-wrap
msgid "The signalfd_siginfo structure"
msgstr ""
#. type: Plain text
-#: build/C/man2/signalfd.2:170
+#: build/C/man2/signalfd.2:171
msgid ""
"The format of the I<signalfd_siginfo> structure(s) returned by B<read>(2)s "
"from a signalfd file descriptor is as follows:"
msgstr ""
#. ssi_trapno is unused on most arches
+#. FIXME Since Linux 2.6.37 there is 'uint16_t ssi_addr_lsb'
+#. which is not yet documented
#. type: Plain text
-#: build/C/man2/signalfd.2:195
+#: build/C/man2/signalfd.2:198
#, no-wrap
msgid ""
"struct signalfd_siginfo {\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/signalfd.2:218
+#: build/C/man2/signalfd.2:221
msgid ""
"Each of the fields in this structure is analogous to the similarly named "
"field in the I<siginfo_t> structure. The I<siginfo_t> structure is "
msgstr ""
#. type: SS
-#: build/C/man2/signalfd.2:218 build/C/man2/timerfd_create.2:268
+#: build/C/man2/signalfd.2:221 build/C/man2/timerfd_create.2:269
#, no-wrap
msgid "fork(2) semantics"
msgstr ""
#. type: Plain text
-#: build/C/man2/signalfd.2:226
+#: build/C/man2/signalfd.2:229
msgid ""
"After a B<fork>(2), the child inherits a copy of the signalfd file "
"descriptor. A B<read>(2) from the file descriptor in the child will return "
msgstr ""
#. type: SS
-#: build/C/man2/signalfd.2:226 build/C/man2/timerfd_create.2:280
+#: build/C/man2/signalfd.2:229 build/C/man2/timerfd_create.2:281
#, no-wrap
msgid "execve(2) semantics"
msgstr ""
#. type: Plain text
-#: build/C/man2/signalfd.2:238
+#: build/C/man2/signalfd.2:241
msgid ""
"Just like any other file descriptor, a signalfd file descriptor remains open "
"across an B<execve>(2), unless it has been marked for close-on-exec (see "
msgstr ""
#. type: SS
-#: build/C/man2/signalfd.2:238
+#: build/C/man2/signalfd.2:241
#, no-wrap
msgid "Thread semantics"
msgstr ""
#. type: Plain text
-#: build/C/man2/signalfd.2:248
+#: build/C/man2/signalfd.2:251
msgid ""
"The semantics of signalfd file descriptors in a multithreaded program mirror "
"the standard semantics for signals. In other words, when a thread reads "
msgstr ""
#. type: Plain text
-#: build/C/man2/signalfd.2:262
+#: build/C/man2/signalfd.2:265
msgid ""
"On success, B<signalfd>() returns a signalfd file descriptor; this is "
"either a new file descriptor (if I<fd> was -1), or I<fd> if I<fd> was a "
msgstr ""
#. type: TP
-#: build/C/man2/signalfd.2:263 build/C/man2/timerfd_create.2:337
+#: build/C/man2/signalfd.2:266 build/C/man2/timerfd_create.2:338
#, no-wrap
msgid "B<EBADF>"
msgstr ""
#. type: Plain text
-#: build/C/man2/signalfd.2:268
+#: build/C/man2/signalfd.2:271
msgid "The I<fd> file descriptor is not a valid file descriptor."
msgstr ""
#. argument is not equal to
#. .IR sizeof(sigset_t) ;
#. type: Plain text
-#: build/C/man2/signalfd.2:276
+#: build/C/man2/signalfd.2:279
msgid "I<fd> is not a valid signalfd file descriptor."
msgstr ""
#. type: Plain text
-#: build/C/man2/signalfd.2:283 build/C/man2/timerfd_create.2:319
+#: build/C/man2/signalfd.2:286 build/C/man2/timerfd_create.2:320
msgid "I<flags> is invalid; or, in Linux 2.6.26 or earlier, I<flags> is nonzero."
msgstr ""
#. type: Plain text
-#: build/C/man2/signalfd.2:286 build/C/man2/timerfd_create.2:322
+#: build/C/man2/signalfd.2:289 build/C/man2/timerfd_create.2:323
msgid "The per-process limit of open file descriptors has been reached."
msgstr ""
#. type: Plain text
-#: build/C/man2/signalfd.2:296
+#: build/C/man2/signalfd.2:299
msgid "There was insufficient memory to create a new signalfd file descriptor."
msgstr ""
#. signalfd() is in glibc 2.7, but reportedly does not build
#. type: Plain text
-#: build/C/man2/signalfd.2:304
+#: build/C/man2/signalfd.2:307
msgid ""
"B<signalfd>() is available on Linux since kernel 2.6.22. Working support "
"is provided in glibc since version 2.8. The B<signalfd4>() system call "
msgstr ""
#. type: Plain text
-#: build/C/man2/signalfd.2:309
+#: build/C/man2/signalfd.2:312
msgid "B<signalfd>() and B<signalfd4>() are Linux-specific."
msgstr ""
#. type: Plain text
-#: build/C/man2/signalfd.2:319
+#: build/C/man2/signalfd.2:322
msgid ""
"The underlying Linux system call requires an additional argument, I<size_t "
"sizemask>, which specifies the size of the I<mask> argument. The glibc "
msgstr ""
#. type: Plain text
-#: build/C/man2/signalfd.2:333
+#: build/C/man2/signalfd.2:336
msgid ""
"A process can create multiple signalfd file descriptors. This makes it "
"possible to accept different signals on different file descriptors. (This "
msgstr ""
#. type: Plain text
-#: build/C/man2/signalfd.2:349
+#: build/C/man2/signalfd.2:352
msgid ""
"There are two underlying Linux system calls: B<signalfd>() and the more "
"recent B<signalfd4>(). The former system call does not implement a I<flags> "
#. The fix also was put into 2.6.24.5
#. type: Plain text
-#: build/C/man2/signalfd.2:357
+#: build/C/man2/signalfd.2:360
msgid ""
"In kernels before 2.6.25, the I<ssi_ptr> and I<ssi_int> fields are not "
"filled in with the data accompanying a signal sent by B<sigqueue>(3)."
msgstr ""
#. type: Plain text
-#: build/C/man2/signalfd.2:367
+#: build/C/man2/signalfd.2:370
msgid ""
"The program below accepts the signals B<SIGINT> and B<SIGQUIT> via a "
"signalfd file descriptor. The program terminates after accepting a "
msgstr ""
#. type: Plain text
-#: build/C/man2/signalfd.2:378
+#: build/C/man2/signalfd.2:381
#, no-wrap
msgid ""
"$B< ./signalfd_demo>\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/signalfd.2:388
+#: build/C/man2/signalfd.2:391
#, no-wrap
msgid ""
"#include E<lt>sys/signalfd.hE<gt>\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/signalfd.2:399
+#: build/C/man2/signalfd.2:402
#, no-wrap
msgid ""
"int\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/signalfd.2:403
+#: build/C/man2/signalfd.2:406
#, no-wrap
msgid ""
" sigemptyset(&mask);\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/signalfd.2:406
+#: build/C/man2/signalfd.2:409
#, no-wrap
msgid ""
" /* Block signals so that they aren\\(aqt handled\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/signalfd.2:409
+#: build/C/man2/signalfd.2:412
#, no-wrap
msgid ""
" if (sigprocmask(SIG_BLOCK, &mask, NULL) == -1)\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/signalfd.2:413
+#: build/C/man2/signalfd.2:416
#, no-wrap
msgid ""
" sfd = signalfd(-1, &mask, 0);\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/signalfd.2:418
+#: build/C/man2/signalfd.2:421
#, no-wrap
msgid ""
" for (;;) {\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/signalfd.2:429
+#: build/C/man2/signalfd.2:432
#, no-wrap
msgid ""
" if (fdsi.ssi_signo == SIGINT) {\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/signalfd.2:443
+#: build/C/man2/signalfd.2:446
msgid ""
"B<eventfd>(2), B<poll>(2), B<read>(2), B<select>(2), B<sigaction>(2), "
"B<sigprocmask>(2), B<sigwaitinfo>(2), B<timerfd_create>(2), B<sigsetops>(3), "
msgstr ""
#. type: TH
-#: build/C/man3/sigpause.3:23
+#: build/C/man3/sigpause.3:25
#, no-wrap
msgid "SIGPAUSE"
msgstr ""
#. type: TH
-#: build/C/man3/sigpause.3:23
+#: build/C/man3/sigpause.3:25
#, no-wrap
msgid "2010-09-12"
msgstr ""
#. type: Plain text
-#: build/C/man3/sigpause.3:26
+#: build/C/man3/sigpause.3:28
msgid "sigpause - atomically release blocked signals and wait for interrupt"
msgstr ""
#. type: Plain text
-#: build/C/man3/sigpause.3:31
+#: build/C/man3/sigpause.3:33
#, no-wrap
msgid "B<int sigpause(int >I<sigmask>B<); /* BSD */>\n"
msgstr ""
#. type: Plain text
-#: build/C/man3/sigpause.3:33
+#: build/C/man3/sigpause.3:35
#, no-wrap
msgid "B<int sigpause(int >I<sig>B<); /* System V / UNIX 95 */>\n"
msgstr ""
#. type: Plain text
-#: build/C/man3/sigpause.3:39
+#: build/C/man3/sigpause.3:41
msgid "Don't use this function. Use B<sigsuspend>(2) instead."
msgstr ""
#. type: Plain text
-#: build/C/man3/sigpause.3:46
+#: build/C/man3/sigpause.3:48
msgid ""
"The function B<sigpause>() is designed to wait for some signal. It changes "
"the process's signal mask (set of blocked signals), and then waits for a "
msgstr ""
#. type: Plain text
-#: build/C/man3/sigpause.3:54
+#: build/C/man3/sigpause.3:56
msgid ""
"If B<sigpause>() returns, it was interrupted by a signal and the return "
"value is -1 with I<errno> set to B<EINTR>."
msgstr ""
#. type: Plain text
-#: build/C/man3/sigpause.3:58
+#: build/C/man3/sigpause.3:60
msgid "The System V version of B<sigpause>() is standardized in POSIX.1-2001."
msgstr ""
#. __xpg_sigpause: UNIX 95, spec 1170, SVID, SVr4, XPG
#. type: Plain text
-#: build/C/man3/sigpause.3:75
+#: build/C/man3/sigpause.3:77
msgid ""
"The classical BSD version of this function appeared in 4.2BSD. It sets the "
"process's signal mask to I<sigmask>. UNIX 95 standardized the incompatible "
msgstr ""
#. type: Plain text
-#: build/C/man3/sigpause.3:78
+#: build/C/man3/sigpause.3:80
msgid ""
"On Linux, this routine is a system call only on the Sparc (sparc64) "
"architecture."
msgstr ""
#. type: Plain text
-#: build/C/man3/sigpause.3:80
+#: build/C/man3/sigpause.3:82
msgid "Libc4 and libc5 only know about the BSD version."
msgstr ""
#. .I sigmask
#. to indicate that no signals are to be blocked.
#. type: Plain text
-#: build/C/man3/sigpause.3:96
+#: build/C/man3/sigpause.3:98
msgid ""
"Glibc uses the BSD version if the B<_BSD_SOURCE> feature test macro is "
"defined and none of B<_POSIX_SOURCE>, B<_POSIX_C_SOURCE>, B<_XOPEN_SOURCE>, "
msgstr ""
#. type: Plain text
-#: build/C/man3/sigpause.3:104
+#: build/C/man3/sigpause.3:106
msgid ""
"B<kill>(2), B<sigaction>(2), B<sigprocmask>(2), B<sigsuspend>(2), "
"B<sigblock>(3), B<sigvec>(3), B<feature_test_macros>(7)"
msgstr ""
#. type: TH
-#: build/C/man2/sigpending.2:27
+#: build/C/man2/sigpending.2:29
#, no-wrap
msgid "SIGPENDING"
msgstr ""
#. type: TH
-#: build/C/man2/sigpending.2:27
+#: build/C/man2/sigpending.2:29
#, no-wrap
msgid "2008-10-04"
msgstr ""
#. type: Plain text
-#: build/C/man2/sigpending.2:30
+#: build/C/man2/sigpending.2:32
msgid "sigpending - examine pending signals"
msgstr ""
#. type: Plain text
-#: build/C/man2/sigpending.2:34
+#: build/C/man2/sigpending.2:36
msgid "B<int sigpending(sigset_t *>I<set>B<);>"
msgstr ""
#. type: Plain text
-#: build/C/man2/sigpending.2:43
+#: build/C/man2/sigpending.2:45
msgid ""
"B<sigpending>(): _POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || "
"_POSIX_SOURCE"
msgstr ""
#. type: Plain text
-#: build/C/man2/sigpending.2:51
+#: build/C/man2/sigpending.2:53
msgid ""
"B<sigpending>() returns the set of signals that are pending for delivery to "
"the calling thread (i.e., the signals which have been raised while "
msgstr ""
#. type: Plain text
-#: build/C/man2/sigpending.2:54
+#: build/C/man2/sigpending.2:56
msgid "B<sigpending>() returns 0 on success and -1 on error."
msgstr ""
#. type: Plain text
-#: build/C/man2/sigpending.2:59
+#: build/C/man2/sigpending.2:61
msgid ""
"I<set> points to memory which is not a valid part of the process address "
"space."
msgstr ""
#. type: Plain text
-#: build/C/man2/sigpending.2:70
+#: build/C/man2/sigpending.2:72
msgid ""
"The set of signals that is pending for a thread is the union of the set of "
"signals that is pending for that thread and the set of signals that is "
msgstr ""
#. type: Plain text
-#: build/C/man2/sigpending.2:82
+#: build/C/man2/sigpending.2:84
msgid ""
"In versions of glibc up to and including 2.2.1, there is a bug in the "
"wrapper function for B<sigpending>() which means that information about "
msgstr ""
#. type: Plain text
-#: build/C/man2/sigpending.2:90
+#: build/C/man2/sigpending.2:92
msgid ""
"B<kill>(2), B<sigaction>(2), B<signal>(2), B<sigprocmask>(2), "
"B<sigsuspend>(2), B<sigsetops>(3), B<signal>(7)"
msgstr ""
#. type: TH
-#: build/C/man2/sigprocmask.2:27
+#: build/C/man2/sigprocmask.2:29
#, no-wrap
msgid "SIGPROCMASK"
msgstr ""
#. type: TH
-#: build/C/man2/sigprocmask.2:27
+#: build/C/man2/sigprocmask.2:29
#, no-wrap
msgid "2012-04-15"
msgstr ""
#. type: Plain text
-#: build/C/man2/sigprocmask.2:30
+#: build/C/man2/sigprocmask.2:32
msgid "sigprocmask - examine and change blocked signals"
msgstr ""
#. type: Plain text
-#: build/C/man2/sigprocmask.2:35
+#: build/C/man2/sigprocmask.2:37
msgid ""
"B<int sigprocmask(int >I<how>B<, const sigset_t *>I<set>B<,> B<sigset_t "
"*>I<oldset>B<);>"
msgstr ""
#. type: Plain text
-#: build/C/man2/sigprocmask.2:44
+#: build/C/man2/sigprocmask.2:46
msgid ""
"B<sigprocmask>(): _POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || "
"_POSIX_SOURCE"
msgstr ""
#. type: Plain text
-#: build/C/man2/sigprocmask.2:53
+#: build/C/man2/sigprocmask.2:55
msgid ""
"B<sigprocmask>() is used to fetch and/or change the signal mask of the "
"calling thread. The signal mask is the set of signals whose delivery is "
msgstr ""
#. type: Plain text
-#: build/C/man2/sigprocmask.2:57
+#: build/C/man2/sigprocmask.2:59
msgid "The behavior of the call is dependent on the value of I<how>, as follows."
msgstr ""
#. type: TP
-#: build/C/man2/sigprocmask.2:57
+#: build/C/man2/sigprocmask.2:59
#, no-wrap
msgid "B<SIG_BLOCK>"
msgstr ""
#. type: Plain text
-#: build/C/man2/sigprocmask.2:62
+#: build/C/man2/sigprocmask.2:64
msgid ""
"The set of blocked signals is the union of the current set and the I<set> "
"argument."
msgstr ""
#. type: TP
-#: build/C/man2/sigprocmask.2:62
+#: build/C/man2/sigprocmask.2:64
#, no-wrap
msgid "B<SIG_UNBLOCK>"
msgstr ""
#. type: Plain text
-#: build/C/man2/sigprocmask.2:68
+#: build/C/man2/sigprocmask.2:70
msgid ""
"The signals in I<set> are removed from the current set of blocked signals. "
"It is permissible to attempt to unblock a signal which is not blocked."
msgstr ""
#. type: TP
-#: build/C/man2/sigprocmask.2:68
+#: build/C/man2/sigprocmask.2:70
#, no-wrap
msgid "B<SIG_SETMASK>"
msgstr ""
#. type: Plain text
-#: build/C/man2/sigprocmask.2:72
+#: build/C/man2/sigprocmask.2:74
msgid "The set of blocked signals is set to the argument I<set>."
msgstr ""
#. type: Plain text
-#: build/C/man2/sigprocmask.2:77
+#: build/C/man2/sigprocmask.2:79
msgid ""
"If I<oldset> is non-NULL, the previous value of the signal mask is stored in "
"I<oldset>."
msgstr ""
#. type: Plain text
-#: build/C/man2/sigprocmask.2:86
+#: build/C/man2/sigprocmask.2:88
msgid ""
"If I<set> is NULL, then the signal mask is unchanged (i.e., I<how> is "
"ignored), but the current value of the signal mask is nevertheless returned "
msgstr ""
#. type: Plain text
-#: build/C/man2/sigprocmask.2:91
+#: build/C/man2/sigprocmask.2:93
msgid ""
"The use of B<sigprocmask>() is unspecified in a multithreaded process; see "
"B<pthread_sigmask>(3)."
msgstr ""
#. type: Plain text
-#: build/C/man2/sigprocmask.2:94
+#: build/C/man2/sigprocmask.2:96
msgid "B<sigprocmask>() returns 0 on success and -1 on error."
msgstr ""
#. type: Plain text
-#: build/C/man2/sigprocmask.2:102
+#: build/C/man2/sigprocmask.2:104
msgid ""
"the I<set> or I<oldset> argument points outside the process's allocated "
"address space."
msgstr ""
#. type: Plain text
-#: build/C/man2/sigprocmask.2:107
+#: build/C/man2/sigprocmask.2:109
msgid "The value specified in I<how> was invalid."
msgstr ""
#. type: Plain text
-#: build/C/man2/sigprocmask.2:113
+#: build/C/man2/sigprocmask.2:115
msgid ""
"It is not possible to block B<SIGKILL> or B<SIGSTOP>. Attempts to do so are "
"silently ignored."
msgstr ""
#. type: Plain text
-#: build/C/man2/sigprocmask.2:115
+#: build/C/man2/sigprocmask.2:117
msgid "Each of the threads in a process has its own signal mask."
msgstr ""
#. type: Plain text
-#: build/C/man2/sigprocmask.2:135
+#: build/C/man2/sigprocmask.2:137
msgid ""
"If B<SIGBUS>, B<SIGFPE>, B<SIGILL>, or B<SIGSEGV> are generated while they "
"are blocked, the result is undefined, unless the signal was generated by "
msgstr ""
#. type: Plain text
-#: build/C/man2/sigprocmask.2:150
+#: build/C/man2/sigprocmask.2:152
msgid ""
"B<kill>(2), B<pause>(2), B<sigaction>(2), B<signal>(2), B<sigpending>(2), "
"B<sigsuspend>(2), B<pthread_sigmask>(3), B<sigqueue>(3), B<sigsetops>(3), "
msgstr ""
#. type: TH
-#: build/C/man3/sigqueue.3:26
+#: build/C/man3/sigqueue.3:28
#, no-wrap
msgid "SIGQUEUE"
msgstr ""
#. type: TH
-#: build/C/man3/sigqueue.3:26
+#: build/C/man3/sigqueue.3:28
#, no-wrap
msgid "2012-03-25"
msgstr ""
#. type: Plain text
-#: build/C/man3/sigqueue.3:29
+#: build/C/man3/sigqueue.3:31
msgid "sigqueue - queue a signal and data to a process"
msgstr ""
#. type: Plain text
-#: build/C/man3/sigqueue.3:33
+#: build/C/man3/sigqueue.3:35
msgid ""
"B<int sigqueue(pid_t >I<pid>B<, int >I<sig>B<, const union sigval "
">I<value>B<);>"
msgstr ""
#. type: Plain text
-#: build/C/man3/sigqueue.3:41
+#: build/C/man3/sigqueue.3:43
msgid "B<sigqueue>(): _POSIX_C_SOURCE\\ E<gt>=\\ 199309L"
msgstr ""
#. type: Plain text
-#: build/C/man3/sigqueue.3:53
+#: build/C/man3/sigqueue.3:55
msgid ""
"B<sigqueue>() sends the signal specified in I<sig> to the process whose PID "
"is given in I<pid>. The permissions required to send a signal are the same "
msgstr ""
#. type: Plain text
-#: build/C/man3/sigqueue.3:58
+#: build/C/man3/sigqueue.3:60
msgid ""
"The I<value> argument is used to specify an accompanying item of data "
"(either an integer or a pointer value) to be sent with the signal, and has "
msgstr ""
#. type: Plain text
-#: build/C/man3/sigqueue.3:65
+#: build/C/man3/sigqueue.3:67
#, no-wrap
msgid ""
"union sigval {\n"
msgstr ""
#. type: Plain text
-#: build/C/man3/sigqueue.3:81
+#: build/C/man3/sigqueue.3:83
msgid ""
"If the receiving process has installed a handler for this signal using the "
"B<SA_SIGINFO> flag to B<sigaction>(2), then it can obtain this data via the "
msgstr ""
#. type: Plain text
-#: build/C/man3/sigqueue.3:89
+#: build/C/man3/sigqueue.3:91
msgid ""
"On success, B<sigqueue>() returns 0, indicating that the signal was "
"successfully queued to the receiving process. Otherwise -1 is returned and "
msgstr ""
#. type: Plain text
-#: build/C/man3/sigqueue.3:100
+#: build/C/man3/sigqueue.3:102
msgid "I<sig> was invalid."
msgstr ""
#. type: Plain text
-#: build/C/man3/sigqueue.3:106
+#: build/C/man3/sigqueue.3:108
msgid ""
"The process does not have permission to send the signal to the receiving "
"process. For the required permissions, see B<kill>(2)."
msgstr ""
#. type: Plain text
-#: build/C/man3/sigqueue.3:110
+#: build/C/man3/sigqueue.3:112
msgid "No process has a PID matching I<pid>."
msgstr ""
#. type: Plain text
-#: build/C/man3/sigqueue.3:112
+#: build/C/man3/sigqueue.3:114
msgid "This system call first appeared in Linux 2.2."
msgstr ""
#. type: Plain text
-#: build/C/man3/sigqueue.3:122
+#: build/C/man3/sigqueue.3:124
msgid ""
"If this function results in the sending of a signal to the process that "
"invoked it, and that signal was not blocked by the calling thread, and no "
msgstr ""
#. type: Plain text
-#: build/C/man3/sigqueue.3:137
+#: build/C/man3/sigqueue.3:139
msgid ""
"On Linux, this function is implemented using the B<rt_sigqueueinfo>(2) "
"system call. The system call differs in its third argument, which is the "
msgstr ""
#. type: Plain text
-#: build/C/man3/sigqueue.3:145
+#: build/C/man3/sigqueue.3:147
#, no-wrap
msgid ""
"uinfo.si_signo = sig; /* argument supplied to sigqueue() */\n"
msgstr ""
#. type: Plain text
-#: build/C/man3/sigqueue.3:155
+#: build/C/man3/sigqueue.3:157
msgid ""
"B<kill>(2), B<rt_sigqueueinfo>(2), B<sigaction>(2), B<signal>(2), "
"B<pthread_sigqueue>(3), B<sigwait>(3), B<signal>(7)"
msgstr ""
#. type: TH
-#: build/C/man2/sigreturn.2:27
+#: build/C/man2/sigreturn.2:29
#, no-wrap
msgid "SIGRETURN"
msgstr ""
#. type: TH
-#: build/C/man2/sigreturn.2:27
+#: build/C/man2/sigreturn.2:29
#, no-wrap
msgid "2008-06-26"
msgstr ""
#. type: Plain text
-#: build/C/man2/sigreturn.2:30
+#: build/C/man2/sigreturn.2:32
msgid "sigreturn - return from signal handler and cleanup stack frame"
msgstr ""
#. type: Plain text
-#: build/C/man2/sigreturn.2:32
+#: build/C/man2/sigreturn.2:34
msgid "B<int sigreturn(unsigned long >I<__unused>B<);>"
msgstr ""
#. type: Plain text
-#: build/C/man2/sigreturn.2:40
+#: build/C/man2/sigreturn.2:42
msgid ""
"When the Linux kernel creates the stack frame for a signal handler, a call "
"to B<sigreturn>() is inserted into the stack frame so that upon return from "
msgstr ""
#. type: Plain text
-#: build/C/man2/sigreturn.2:51
+#: build/C/man2/sigreturn.2:53
msgid ""
"This B<sigreturn>() call undoes everything that was done\\(emchanging the "
"process's signal mask, switching stacks (see B<sigaltstack>(2))\\(emin order "
msgstr ""
#. type: Plain text
-#: build/C/man2/sigreturn.2:54
+#: build/C/man2/sigreturn.2:56
msgid "B<sigreturn>() never returns."
msgstr ""
#. type: SH
-#: build/C/man2/sigreturn.2:54
+#: build/C/man2/sigreturn.2:56
#, no-wrap
msgid "FILES"
msgstr ""
#. type: Plain text
-#: build/C/man2/sigreturn.2:56
+#: build/C/man2/sigreturn.2:58
msgid "/usr/src/linux/arch/i386/kernel/signal.c"
msgstr ""
#. type: Plain text
-#: build/C/man2/sigreturn.2:58
+#: build/C/man2/sigreturn.2:60
msgid "/usr/src/linux/arch/alpha/kernel/entry.S"
msgstr ""
#. type: Plain text
-#: build/C/man2/sigreturn.2:62
+#: build/C/man2/sigreturn.2:64
msgid ""
"B<sigreturn>() is specific to Linux and should not be used in programs "
"intended to be portable."
msgstr ""
#. type: Plain text
-#: build/C/man2/sigreturn.2:72
+#: build/C/man2/sigreturn.2:74
msgid ""
"The B<sigreturn>() call is used by the kernel to implement signal "
"handlers. It should B<never> be called directly. Better yet, the specific "
msgstr ""
#. type: Plain text
-#: build/C/man2/sigreturn.2:77
+#: build/C/man2/sigreturn.2:79
msgid "B<kill>(2), B<sigaltstack>(2), B<signal>(2), B<signal>(7)"
msgstr ""
#. type: TH
-#: build/C/man3/sigset.3:24
+#: build/C/man3/sigset.3:26
#, no-wrap
msgid "SIGSET"
msgstr ""
#. type: Plain text
-#: build/C/man3/sigset.3:27
+#: build/C/man3/sigset.3:29
msgid "sigset, sighold, sigrelse, sigignore - System V signal API"
msgstr ""
#. type: Plain text
-#: build/C/man3/sigset.3:33
+#: build/C/man3/sigset.3:35
msgid "B<sighandler_t sigset(int >I<sig>B<, sighandler_t >I<disp>B<);>"
msgstr ""
#. type: Plain text
-#: build/C/man3/sigset.3:35
+#: build/C/man3/sigset.3:37
msgid "B<int sighold(int >I<sig>B<);>"
msgstr ""
#. type: Plain text
-#: build/C/man3/sigset.3:37
+#: build/C/man3/sigset.3:39
msgid "B<int sigrelse(int >I<sig>B<);>"
msgstr ""
#. type: Plain text
-#: build/C/man3/sigset.3:39
+#: build/C/man3/sigset.3:41
msgid "B<int sigignore(int >I<sig>B<);>"
msgstr ""
#. type: Plain text
-#: build/C/man3/sigset.3:50
+#: build/C/man3/sigset.3:52
msgid "B<sigset>(), B<sighold>(), B<sigrelse>(), B<sigignore>():"
msgstr ""
#. type: Plain text
-#: build/C/man3/sigset.3:54
+#: build/C/man3/sigset.3:56
msgid "_XOPEN_SOURCE\\ E<gt>=\\ 500 || _XOPEN_SOURCE\\ &&\\ _XOPEN_SOURCE_EXTENDED"
msgstr ""
#. type: Plain text
-#: build/C/man3/sigset.3:63
+#: build/C/man3/sigset.3:65
msgid ""
"These functions are provided in glibc as a compatibility interface for "
"programs that make use of the historical System V signal API. This API is "
msgstr ""
#. type: Plain text
-#: build/C/man3/sigset.3:72
+#: build/C/man3/sigset.3:74
msgid ""
"The B<sigset>() function modifies the disposition of the signal I<sig>. "
"The I<disp> argument can be the address of a signal handler function, or one "
msgstr ""
#. type: TP
-#: build/C/man3/sigset.3:72
+#: build/C/man3/sigset.3:74
#, no-wrap
msgid "B<SIG_DFL>"
msgstr ""
#. type: Plain text
-#: build/C/man3/sigset.3:77
+#: build/C/man3/sigset.3:79
msgid "Reset the disposition of I<sig> to the default."
msgstr ""
#. type: TP
-#: build/C/man3/sigset.3:77
+#: build/C/man3/sigset.3:79
#, no-wrap
msgid "B<SIG_IGN>"
msgstr ""
#. type: Plain text
-#: build/C/man3/sigset.3:81
+#: build/C/man3/sigset.3:83
msgid "Ignore I<sig>."
msgstr ""
#. type: TP
-#: build/C/man3/sigset.3:81
+#: build/C/man3/sigset.3:83
#, no-wrap
msgid "B<SIG_HOLD>"
msgstr ""
#. type: Plain text
-#: build/C/man3/sigset.3:88
+#: build/C/man3/sigset.3:90
msgid ""
"Add I<sig> to the process's signal mask, but leave the disposition of I<sig> "
"unchanged."
msgstr ""
#. type: Plain text
-#: build/C/man3/sigset.3:94
+#: build/C/man3/sigset.3:96
msgid ""
"If I<disp> specifies the address of a signal handler, then I<sig> is added "
"to the process's signal mask during execution of the handler."
msgstr ""
#. type: Plain text
-#: build/C/man3/sigset.3:102
+#: build/C/man3/sigset.3:104
msgid ""
"If I<disp> was specified as a value other than B<SIG_HOLD>, then I<sig> is "
"removed from the process's signal mask."
msgstr ""
#. type: Plain text
-#: build/C/man3/sigset.3:108 build/C/man3/sigvec.3:85
+#: build/C/man3/sigset.3:110 build/C/man3/sigvec.3:87
msgid "The dispositions for B<SIGKILL> and B<SIGSTOP> cannot be changed."
msgstr ""
#. type: Plain text
-#: build/C/man3/sigset.3:114
+#: build/C/man3/sigset.3:116
msgid "The B<sighold>() function adds I<sig> to the calling process's signal mask."
msgstr ""
#. type: Plain text
-#: build/C/man3/sigset.3:120
+#: build/C/man3/sigset.3:122
msgid ""
"The B<sigrelse>() function removes I<sig> from the calling process's signal "
"mask."
msgstr ""
#. type: Plain text
-#: build/C/man3/sigset.3:127
+#: build/C/man3/sigset.3:129
msgid "The B<sigignore>() function sets the disposition of I<sig> to B<SIG_IGN>."
msgstr ""
#. type: Plain text
-#: build/C/man3/sigset.3:143
+#: build/C/man3/sigset.3:145
msgid ""
"On success, B<sigset>() returns B<SIG_HOLD> if I<sig> was blocked before "
"the call, or the signal's previous disposition if it was not blocked before "
msgstr ""
#. type: Plain text
-#: build/C/man3/sigset.3:152
+#: build/C/man3/sigset.3:154
msgid ""
"The B<sighold>(), B<sigrelse>(), and B<sigignore>() functions return 0 on "
"success; on error, these functions return -1 and set I<errno> to indicate "
msgstr ""
#. type: Plain text
-#: build/C/man3/sigset.3:159
+#: build/C/man3/sigset.3:161
msgid ""
"For B<sigset>() see the ERRORS under B<sigaction>(2) and "
"B<sigprocmask>(2)."
msgstr ""
#. type: Plain text
-#: build/C/man3/sigset.3:166
+#: build/C/man3/sigset.3:168
msgid "For B<sighold>() and B<sigrelse>() see the ERRORS under B<sigprocmask>(2)."
msgstr ""
#. type: Plain text
-#: build/C/man3/sigset.3:171
+#: build/C/man3/sigset.3:173
msgid "For B<sigignore>(), see the errors under B<sigaction>(2)."
msgstr ""
#. type: Plain text
-#: build/C/man3/sigset.3:188
+#: build/C/man3/sigset.3:190
msgid ""
"SVr4, POSIX.1-2001. These functions are obsolete: do not use them in new "
"programs. POSIX.1-2008 marks B<sighold>(), B<sigignore>(), B<sigpause>(), "
msgstr ""
#. type: Plain text
-#: build/C/man3/sigset.3:190
+#: build/C/man3/sigset.3:192
msgid "These functions appeared in glibc version 2.1."
msgstr ""
#. type: Plain text
-#: build/C/man3/sigset.3:196
+#: build/C/man3/sigset.3:198
msgid ""
"The I<sighandler_t> type is a GNU extension; it is only used on this page to "
"make the B<sigset>() prototype more easily readable."
msgstr ""
#. type: Plain text
-#: build/C/man3/sigset.3:204
+#: build/C/man3/sigset.3:206
msgid ""
"The B<sigset>() function provides reliable signal handling semantics (as "
"when calling B<sigaction>(2) with I<sa_mask> equal to 0)."
msgstr ""
#. type: Plain text
-#: build/C/man3/sigset.3:222
+#: build/C/man3/sigset.3:224
msgid ""
"On System V, the B<signal>() function provides unreliable semantics (as "
"when calling B<sigaction>(2) with I<sa_mask> equal to I<SA_RESETHAND | "
msgstr ""
#. type: Plain text
-#: build/C/man3/sigset.3:230 build/C/man3/sigvec.3:250
+#: build/C/man3/sigset.3:232 build/C/man3/sigvec.3:252
msgid ""
"In order to wait for a signal, BSD and System V both provided a function "
"named B<sigpause>(3), but this function has a different argument on the two "
msgstr ""
#. type: Plain text
-#: build/C/man3/sigset.3:239
+#: build/C/man3/sigset.3:241
msgid ""
"In versions of glibc before 2.2, B<sigset>() did not unblock I<sig> if "
"I<disp> was specified as a value other than B<SIG_HOLD>."
#. See http://sourceware.org/bugzilla/show_bug.cgi?id=1951
#. type: Plain text
-#: build/C/man3/sigset.3:264
+#: build/C/man3/sigset.3:266
msgid ""
"In versions of glibc before 2.5, B<sigset>() does not correctly return the "
"previous disposition of the signal in two cases. First, if I<disp> is "
msgstr ""
#. type: Plain text
-#: build/C/man3/sigset.3:274
+#: build/C/man3/sigset.3:276
msgid ""
"B<kill>(2), B<pause>(2), B<sigaction>(2), B<signal>(2), B<sigprocmask>(2), "
"B<raise>(3), B<sigpause>(3), B<sigvec>(3), B<signal>(7)"
msgstr ""
#. type: TH
-#: build/C/man3/sigsetops.3:29
+#: build/C/man3/sigsetops.3:31
#, no-wrap
msgid "SIGSETOPS"
msgstr ""
#. type: TH
-#: build/C/man3/sigsetops.3:29
+#: build/C/man3/sigsetops.3:31
#, no-wrap
msgid "2008-09-01"
msgstr ""
#. type: Plain text
-#: build/C/man3/sigsetops.3:33
+#: build/C/man3/sigsetops.3:35
msgid ""
"sigemptyset, sigfillset, sigaddset, sigdelset, sigismember - POSIX signal "
"set operations."
msgstr ""
#. type: Plain text
-#: build/C/man3/sigsetops.3:37
+#: build/C/man3/sigsetops.3:39
msgid "B<int sigemptyset(sigset_t *>I<set>B<);>"
msgstr ""
#. type: Plain text
-#: build/C/man3/sigsetops.3:39
+#: build/C/man3/sigsetops.3:41
msgid "B<int sigfillset(sigset_t *>I<set>B<);>"
msgstr ""
#. type: Plain text
-#: build/C/man3/sigsetops.3:41
+#: build/C/man3/sigsetops.3:43
msgid "B<int sigaddset(sigset_t *>I<set>B<, int >I<signum>B<);>"
msgstr ""
#. type: Plain text
-#: build/C/man3/sigsetops.3:43
+#: build/C/man3/sigsetops.3:45
msgid "B<int sigdelset(sigset_t *>I<set>B<, int >I<signum>B<);>"
msgstr ""
#. type: Plain text
-#: build/C/man3/sigsetops.3:45
+#: build/C/man3/sigsetops.3:47
msgid "B<int sigismember(const sigset_t *>I<set>B<, int >I<signum>B<);>"
msgstr ""
#. type: Plain text
-#: build/C/man3/sigsetops.3:57
+#: build/C/man3/sigsetops.3:59
msgid ""
"B<sigemptyset>(), B<sigfillset>(), B<sigaddset>(), B<sigdelset>(), "
"B<sigismember>():"
msgstr ""
#. type: Plain text
-#: build/C/man3/sigsetops.3:59
+#: build/C/man3/sigsetops.3:61
msgid "_POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || _POSIX_SOURCE"
msgstr ""
#. type: Plain text
-#: build/C/man3/sigsetops.3:63
+#: build/C/man3/sigsetops.3:65
msgid "These functions allow the manipulation of POSIX signal sets."
msgstr ""
#. type: Plain text
-#: build/C/man3/sigsetops.3:68
+#: build/C/man3/sigsetops.3:70
msgid ""
"B<sigemptyset>() initializes the signal set given by I<set> to empty, with "
"all signals excluded from the set."
msgstr ""
#. type: Plain text
-#: build/C/man3/sigsetops.3:73
+#: build/C/man3/sigsetops.3:75
msgid "B<sigfillset>() initializes I<set> to full, including all signals."
msgstr ""
#. type: Plain text
-#: build/C/man3/sigsetops.3:81
+#: build/C/man3/sigsetops.3:83
msgid ""
"B<sigaddset>() and B<sigdelset>() add and delete respectively signal "
"I<signum> from I<set>."
msgstr ""
#. type: Plain text
-#: build/C/man3/sigsetops.3:87
+#: build/C/man3/sigsetops.3:89
msgid "B<sigismember>() tests whether I<signum> is a member of I<set>."
msgstr ""
#. type: Plain text
-#: build/C/man3/sigsetops.3:105
+#: build/C/man3/sigsetops.3:107
msgid ""
"Objects of type I<sigset_t> must be initialized by a call to either "
"B<sigemptyset>() or B<sigfillset>() before being passed to the functions "
msgstr ""
#. type: Plain text
-#: build/C/man3/sigsetops.3:112
+#: build/C/man3/sigsetops.3:114
msgid ""
"B<sigemptyset>(), B<sigfillset>(), B<sigaddset>(), and B<sigdelset>() "
"return 0 on success and -1 on error."
msgstr ""
#. type: Plain text
-#: build/C/man3/sigsetops.3:121
+#: build/C/man3/sigsetops.3:123
msgid ""
"B<sigismember>() returns 1 if I<signum> is a member of I<set>, 0 if "
"I<signum> is not a member, and -1 on error."
msgstr ""
#. type: Plain text
-#: build/C/man3/sigsetops.3:126
+#: build/C/man3/sigsetops.3:128
msgid "I<sig> is not a valid signal."
msgstr ""
#. type: SS
-#: build/C/man3/sigsetops.3:129
+#: build/C/man3/sigsetops.3:131
#, no-wrap
-msgid "Glibc Notes"
+msgid "Glibc notes"
msgstr ""
#. type: Plain text
-#: build/C/man3/sigsetops.3:135
+#: build/C/man3/sigsetops.3:137
msgid ""
"If the B<_GNU_SOURCE> feature test macro is defined, then "
"I<E<lt>signal.hE<gt>> exposes three other functions for manipulating signal "
msgstr ""
#. type: TP
-#: build/C/man3/sigsetops.3:135
+#: build/C/man3/sigsetops.3:137
#, no-wrap
msgid "B<int sigisemptyset(sigset_t *>I<set>B<);>"
msgstr ""
#. type: Plain text
-#: build/C/man3/sigsetops.3:140
+#: build/C/man3/sigsetops.3:142
msgid "returns 1 if I<set> contains no signals, and 0 otherwise."
msgstr ""
#. type: TP
-#: build/C/man3/sigsetops.3:140
+#: build/C/man3/sigsetops.3:142
#, no-wrap
msgid ""
"B<int sigorset(sigset_t *>I<dest>B<, sigset_t *>I<left>B<, sigset_t "
msgstr ""
#. type: Plain text
-#: build/C/man3/sigsetops.3:149
+#: build/C/man3/sigsetops.3:151
msgid "places the union of the sets I<left> and I<right> in I<dest>."
msgstr ""
#. type: TP
-#: build/C/man3/sigsetops.3:149
+#: build/C/man3/sigsetops.3:151
#, no-wrap
msgid ""
"B<int sigandset(sigset_t *>I<dest>B<, sigset_t *>I<left>B<, sigset_t "
msgstr ""
#. type: Plain text
-#: build/C/man3/sigsetops.3:158
+#: build/C/man3/sigsetops.3:160
msgid "places the intersection of the sets I<left> and I<right> in I<dest>."
msgstr ""
#. type: Plain text
-#: build/C/man3/sigsetops.3:163
+#: build/C/man3/sigsetops.3:165
msgid "B<sigorset>() and B<sigandset>() return 0 on success, and -1 on failure."
msgstr ""
#. type: Plain text
-#: build/C/man3/sigsetops.3:166
+#: build/C/man3/sigsetops.3:168
msgid ""
"These functions are nonstandard (a few other systems provide similar "
"functions) and their use should be avoided in portable applications."
msgstr ""
#. type: Plain text
-#: build/C/man3/sigsetops.3:171
+#: build/C/man3/sigsetops.3:173
msgid "B<sigaction>(2), B<sigpending>(2), B<sigprocmask>(2), B<sigsuspend>(2)"
msgstr ""
#. type: TH
-#: build/C/man2/sigsuspend.2:27
+#: build/C/man2/sigsuspend.2:29
#, no-wrap
msgid "SIGSUSPEND"
msgstr ""
#. type: TH
-#: build/C/man2/sigsuspend.2:27
+#: build/C/man2/sigsuspend.2:29
#, no-wrap
msgid "2008-08-29"
msgstr ""
#. type: Plain text
-#: build/C/man2/sigsuspend.2:30
+#: build/C/man2/sigsuspend.2:32
msgid "sigsuspend - wait for a signal"
msgstr ""
#. type: Plain text
-#: build/C/man2/sigsuspend.2:34
+#: build/C/man2/sigsuspend.2:36
msgid "B<int sigsuspend(const sigset_t *>I<mask>B<);>"
msgstr ""
#. type: Plain text
-#: build/C/man2/sigsuspend.2:43
+#: build/C/man2/sigsuspend.2:45
msgid ""
"B<sigsuspend>(): _POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || "
"_POSIX_SOURCE"
msgstr ""
#. type: Plain text
-#: build/C/man2/sigsuspend.2:51
+#: build/C/man2/sigsuspend.2:53
msgid ""
"B<sigsuspend>() temporarily replaces the signal mask of the calling process "
"with the mask given by I<mask> and then suspends the process until delivery "
msgstr ""
#. type: Plain text
-#: build/C/man2/sigsuspend.2:60
+#: build/C/man2/sigsuspend.2:62
msgid ""
"If the signal terminates the process, then B<sigsuspend>() does not "
"return. If the signal is caught, then B<sigsuspend>() returns after the "
msgstr ""
#. type: Plain text
-#: build/C/man2/sigsuspend.2:68
+#: build/C/man2/sigsuspend.2:70
msgid ""
"It is not possible to block B<SIGKILL> or B<SIGSTOP>; specifying these "
"signals in I<mask>, has no effect on the process's signal mask."
msgstr ""
#. type: Plain text
-#: build/C/man2/sigsuspend.2:72
+#: build/C/man2/sigsuspend.2:74
msgid "B<sigsuspend>() always returns -1, normally with the error B<EINTR>."
msgstr ""
#. type: Plain text
-#: build/C/man2/sigsuspend.2:77
+#: build/C/man2/sigsuspend.2:79
msgid ""
"I<mask> points to memory which is not a valid part of the process address "
"space."
msgstr ""
#. type: Plain text
-#: build/C/man2/sigsuspend.2:80
+#: build/C/man2/sigsuspend.2:82
msgid "The call was interrupted by a signal."
msgstr ""
#. type: Plain text
-#: build/C/man2/sigsuspend.2:100
+#: build/C/man2/sigsuspend.2:102
msgid ""
"Normally, B<sigsuspend>() is used in conjunction with B<sigprocmask>(2) in "
"order to prevent delivery of a signal during the execution of a critical "
msgstr ""
#. type: Plain text
-#: build/C/man2/sigsuspend.2:114
+#: build/C/man2/sigsuspend.2:116
msgid ""
"B<kill>(2), B<pause>(2), B<sigaction>(2), B<signal>(2), B<sigprocmask>(2), "
"B<sigwaitinfo>(2), B<sigsetops>(3), B<sigwait>(3), B<signal>(7)"
msgstr ""
#. type: TH
-#: build/C/man3/sigvec.3:24
+#: build/C/man3/sigvec.3:26
#, no-wrap
msgid "SIGVEC"
msgstr ""
+#. type: TH
+#: build/C/man3/sigvec.3:26
+#, no-wrap
+msgid "2012-09-06"
+msgstr ""
+
#. type: Plain text
-#: build/C/man3/sigvec.3:27
+#: build/C/man3/sigvec.3:29
msgid "sigvec, sigblock, sigsetmask, siggetmask, sigmask - BSD signal API"
msgstr ""
#. type: Plain text
-#: build/C/man3/sigvec.3:31
+#: build/C/man3/sigvec.3:33
msgid ""
"B<int sigvec(int >I<sig>B<, struct sigvec *>I<vec>B<, struct sigvec "
"*>I<ovec>B<);>"
msgstr ""
#. type: Plain text
-#: build/C/man3/sigvec.3:33
+#: build/C/man3/sigvec.3:35
msgid "B<int sigmask(int >I<signum>B<);>"
msgstr ""
#. type: Plain text
-#: build/C/man3/sigvec.3:35
+#: build/C/man3/sigvec.3:37
msgid "B<int sigblock(int >I<mask>B<);>"
msgstr ""
#. type: Plain text
-#: build/C/man3/sigvec.3:37
+#: build/C/man3/sigvec.3:39
msgid "B<int sigsetmask(int >I<mask>B<);>"
msgstr ""
#. type: Plain text
-#: build/C/man3/sigvec.3:39
+#: build/C/man3/sigvec.3:41
msgid "B<int siggetmask(void);>"
msgstr ""
#. type: Plain text
-#: build/C/man3/sigvec.3:47
+#: build/C/man3/sigvec.3:49
msgid "All functions shown above: _BSD_SOURCE"
msgstr ""
#. type: Plain text
-#: build/C/man3/sigvec.3:54
+#: build/C/man3/sigvec.3:56
msgid ""
"These functions are provided in glibc as a compatibility interface for "
"programs that make use of the historical BSD signal API. This API is "
"obsolete: new applications should use the POSIX signal API (B<sigaction>(2), "
-"B<sigprocmask>(2), etc.)"
+"B<sigprocmask>(2), etc.)."
msgstr ""
#. type: Plain text
-#: build/C/man3/sigvec.3:79
+#: build/C/man3/sigvec.3:81
msgid ""
"The B<sigvec>() function sets and/or gets the disposition of the signal "
"I<sig> (like the POSIX B<sigaction>(2)). If I<vec> is not NULL, it points "
msgstr ""
#. type: Plain text
-#: build/C/man3/sigvec.3:89
+#: build/C/man3/sigvec.3:91
msgid "The I<sigvec> structure has the following form:"
msgstr ""
#. type: Plain text
-#: build/C/man3/sigvec.3:97
+#: build/C/man3/sigvec.3:99
#, no-wrap
msgid ""
"struct sigvec {\n"
-" void (*sv_handler)(); /* Signal disposition */\n"
-" int sv_mask; /* Signals to be blocked in handler */\n"
-" int sv_flags; /* Flags */\n"
+" void (*sv_handler)(int); /* Signal disposition */\n"
+" int sv_mask; /* Signals to be blocked in handler */\n"
+" int sv_flags; /* Flags */\n"
"};\n"
msgstr ""
#. type: Plain text
-#: build/C/man3/sigvec.3:108
+#: build/C/man3/sigvec.3:110
msgid ""
"The I<sv_handler> field specifies the disposition of the signal, and is "
-"either: the address of a signal handler function; or B<SIG_DFL> meaning the "
-"default disposition applies for the signal; or B<SIG_IGN> meaning that the "
+"either: the address of a signal handler function; B<SIG_DFL>, meaning the "
+"default disposition applies for the signal; or B<SIG_IGN>, meaning that the "
"signal is ignored."
msgstr ""
#. type: Plain text
-#: build/C/man3/sigvec.3:122
+#: build/C/man3/sigvec.3:124
msgid ""
"If I<sv_handler> specifies the address of a signal handler, then I<sv_mask> "
"specifies a mask of signals that are to be blocked while the handler is "
"executing. In addition, the signal for which the handler is invoked is also "
-"blocked by default. Attempts to block B<SIGKILL> or B<SIGSTOP> are silently "
-"ignored."
+"blocked. Attempts to block B<SIGKILL> or B<SIGSTOP> are silently ignored."
msgstr ""
#. type: Plain text
-#: build/C/man3/sigvec.3:129
+#: build/C/man3/sigvec.3:131
msgid ""
"If I<sv_handler> specifies the address of a signal handler, then the "
"I<sv_flags> field specifies flags controlling what happens when the handler "
msgstr ""
#. type: TP
-#: build/C/man3/sigvec.3:129
+#: build/C/man3/sigvec.3:131
#, no-wrap
msgid "B<SV_INTERRUPT>"
msgstr ""
#. type: Plain text
-#: build/C/man3/sigvec.3:137
+#: build/C/man3/sigvec.3:139
msgid ""
"If the signal handler interrupts a blocking system call, then upon return "
"from the handler the system call will not be restarted: instead it will fail "
msgstr ""
#. type: TP
-#: build/C/man3/sigvec.3:137
+#: build/C/man3/sigvec.3:139
#, no-wrap
msgid "B<SV_RESETHAND>"
msgstr ""
#. type: Plain text
-#: build/C/man3/sigvec.3:146
+#: build/C/man3/sigvec.3:148
msgid ""
"Reset the disposition of the signal to the default before calling the signal "
"handler. If this flag is not specified, then the handler remains "
msgstr ""
#. type: TP
-#: build/C/man3/sigvec.3:146
+#: build/C/man3/sigvec.3:148
#, no-wrap
msgid "B<SV_ONSTACK>"
msgstr ""
#. type: Plain text
-#: build/C/man3/sigvec.3:153
+#: build/C/man3/sigvec.3:155
msgid ""
"Handle the signal on the alternate signal stack (historically established "
"under BSD using the obsolete B<sigstack>() function; the POSIX replacement "
msgstr ""
#. type: Plain text
-#: build/C/man3/sigvec.3:163
+#: build/C/man3/sigvec.3:165
msgid ""
"The B<sigmask>() function constructs and returns a \"signal mask\" for "
"I<signum>. For example, we can initialize the I<vec.sv_mask> field given to "
msgstr ""
#. type: Plain text
-#: build/C/man3/sigvec.3:168
+#: build/C/man3/sigvec.3:170
#, no-wrap
msgid ""
" vec.sv_mask = sigmask(SIGQUIT) | sigpause(SIGABRT);\n"
msgstr ""
#. type: Plain text
-#: build/C/man3/sigvec.3:183
+#: build/C/man3/sigvec.3:185
msgid ""
"The B<sigblock>() function adds the signals in I<mask> to the process's "
"signal mask (like POSIX I<sigprocmask(SIG_BLOCK)>), and returns the "
msgstr ""
#. type: Plain text
-#: build/C/man3/sigvec.3:191
+#: build/C/man3/sigvec.3:193
msgid ""
"The B<sigsetmask>() function sets the process's signal mask to the value "
"given in I<mask> (like POSIX I<sigprocmask(SIG_SETMASK)>), and returns the "
msgstr ""
#. type: Plain text
-#: build/C/man3/sigvec.3:197
+#: build/C/man3/sigvec.3:199
msgid ""
"The B<siggetmask>() function returns the process's current signal mask. "
"This call is equivalent to I<sigblock(0)>."
msgstr ""
#. type: Plain text
-#: build/C/man3/sigvec.3:203
+#: build/C/man3/sigvec.3:205
msgid ""
"The B<sigvec>() function returns 0 on success; on error, it returns -1 and "
"sets I<errno> to indicate the error."
msgstr ""
#. type: Plain text
-#: build/C/man3/sigvec.3:209
+#: build/C/man3/sigvec.3:211
msgid ""
"The B<sigblock>() and B<sigsetmask>() functions return the previous signal "
"mask."
msgstr ""
#. type: Plain text
-#: build/C/man3/sigvec.3:214
+#: build/C/man3/sigvec.3:216
msgid "The B<sigmask>() function returns the signal mask for I<signum>."
msgstr ""
#. type: Plain text
-#: build/C/man3/sigvec.3:219
+#: build/C/man3/sigvec.3:221
msgid "See the ERRORS under B<sigaction>(2) and B<sigprocmask>(2)."
msgstr ""
#. type: Plain text
-#: build/C/man3/sigvec.3:225
+#: build/C/man3/sigvec.3:227
msgid ""
"All of these functions were in 4.3BSD, except B<siggetmask>(), whose origin "
"is unclear. These functions are obsolete: do not use them in new programs."
msgstr ""
#. type: Plain text
-#: build/C/man3/sigvec.3:242
+#: build/C/man3/sigvec.3:244
msgid ""
"On 4.3BSD, the B<signal>() function provided reliable semantics (as when "
"calling B<sigvec>() with I<vec.sv_mask> equal to 0). On System V, "
msgstr ""
#. type: Plain text
-#: build/C/man3/sigvec.3:260
+#: build/C/man3/sigvec.3:262
msgid ""
"B<kill>(2), B<pause>(2), B<sigaction>(2), B<signal>(2), B<sigprocmask>(2), "
"B<raise>(3), B<sigpause>(3), B<sigset>(3), B<signal>(7)"
msgstr ""
#. type: TH
-#: build/C/man3/sigwait.3:24
+#: build/C/man3/sigwait.3:26
#, no-wrap
msgid "SIGWAIT"
msgstr ""
#. type: TH
-#: build/C/man3/sigwait.3:24
+#: build/C/man3/sigwait.3:26 build/C/man2/sigwaitinfo.2:25
#, no-wrap
-msgid "2010-09-10"
+msgid "2012-07-21"
msgstr ""
#. type: Plain text
-#: build/C/man3/sigwait.3:27
+#: build/C/man3/sigwait.3:29
msgid "sigwait - wait for a signal"
msgstr ""
#. type: Plain text
-#: build/C/man3/sigwait.3:32
+#: build/C/man3/sigwait.3:34
#, no-wrap
msgid "B< int sigwait(const sigset_t *>I<set>B<, int *>I<sig>B<);>\n"
msgstr ""
#. type: Plain text
-#: build/C/man3/sigwait.3:42
+#: build/C/man3/sigwait.3:44
msgid "B<sigwait>(): _POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || _POSIX_SOURCE"
msgstr ""
#. type: Plain text
-#: build/C/man3/sigwait.3:53
+#: build/C/man3/sigwait.3:56
msgid ""
"The B<sigwait>() function suspends execution of the calling thread until "
-"the delivery of one of the signals specified in the signal set I<set>. The "
+"one of the signals specified in the signal set I<set> becomes pending. The "
"function accepts the signal (removes it from the pending list of signals), "
"and returns the signal number in I<sig>."
msgstr ""
#. type: Plain text
-#: build/C/man3/sigwait.3:59
+#: build/C/man3/sigwait.3:62
msgid ""
"The operation of B<sigwait>() is the same as B<sigwaitinfo>(2), except "
"that:"
msgstr ""
#. type: Plain text
-#: build/C/man3/sigwait.3:64
+#: build/C/man3/sigwait.3:67
msgid ""
"B<sigwait>() only returns the signal number, rather than a I<siginfo_t> "
"structure describing the signal."
msgstr ""
#. type: Plain text
-#: build/C/man3/sigwait.3:66
+#: build/C/man3/sigwait.3:69
msgid "The return values of the two functions are different."
msgstr ""
#. type: Plain text
-#: build/C/man3/sigwait.3:71
+#: build/C/man3/sigwait.3:74
msgid ""
"On success, B<sigwait>() returns 0. On error, it returns a positive error "
"number (listed in ERRORS)."
#. Does not occur for glibc.
#. type: Plain text
-#: build/C/man3/sigwait.3:77
+#: build/C/man3/sigwait.3:80
msgid "I<set> contains an invalid signal number."
msgstr ""
#. type: Plain text
-#: build/C/man3/sigwait.3:83
+#: build/C/man3/sigwait.3:86
msgid "B<sigwait>() is implemented using B<sigtimedwait>(2)."
msgstr ""
#. type: Plain text
-#: build/C/man3/sigwait.3:86
+#: build/C/man3/sigwait.3:89
msgid "See B<pthread_sigmask>(3)."
msgstr ""
#. type: Plain text
-#: build/C/man3/sigwait.3:94
+#: build/C/man3/sigwait.3:97
msgid ""
"B<sigaction>(2), B<signalfd>(2), B<sigpending>(2), B<sigsuspend>(2), "
"B<sigwaitinfo>(2), B<sigsetops>(3), B<signal>(7)"
msgstr ""
#. type: TH
-#: build/C/man2/sigwaitinfo.2:23
+#: build/C/man2/sigwaitinfo.2:25
#, no-wrap
msgid "SIGWAITINFO"
msgstr ""
-#. type: TH
-#: build/C/man2/sigwaitinfo.2:23
-#, no-wrap
-msgid "2012-05-02"
-msgstr ""
-
#. type: Plain text
-#: build/C/man2/sigwaitinfo.2:26
+#: build/C/man2/sigwaitinfo.2:28
msgid "sigwaitinfo, sigtimedwait - synchronously wait for queued signals"
msgstr ""
#. type: Plain text
-#: build/C/man2/sigwaitinfo.2:31
+#: build/C/man2/sigwaitinfo.2:33
#, no-wrap
msgid "B<int sigwaitinfo(const sigset_t *>I<set>B<, siginfo_t *>I<info>B<);>\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/sigwaitinfo.2:34
+#: build/C/man2/sigwaitinfo.2:36
#, no-wrap
msgid ""
"B<int sigtimedwait(const sigset_t *>I<set>B<, siginfo_t *>I<info>B<, >\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/sigwaitinfo.2:44
+#: build/C/man2/sigwaitinfo.2:46
msgid "B<sigwaitinfo>(), B<sigtimedwait>(): _POSIX_C_SOURCE\\ E<gt>=\\ 199309L"
msgstr ""
#. type: Plain text
-#: build/C/man2/sigwaitinfo.2:54
+#: build/C/man2/sigwaitinfo.2:56
msgid ""
"B<sigwaitinfo>() suspends execution of the calling thread until one of the "
-"signals in I<set> is delivered. (If one of the signals in I<set> is already "
-"pending for the calling thread, B<sigwaitinfo>() will return immediately "
-"with information about that signal.)"
+"signals in I<set> is pending (If one of the signals in I<set> is already "
+"pending for the calling thread, B<sigwaitinfo>() will return immediately.)"
msgstr ""
#. type: Plain text
-#: build/C/man2/sigwaitinfo.2:66
+#: build/C/man2/sigwaitinfo.2:68
msgid ""
-"B<sigwaitinfo>() removes the delivered signal from the set of pending "
-"signals and returns the signal number as its function result. If the "
-"I<info> argument is not NULL, then it returns a structure of type "
-"I<siginfo_t> (see B<sigaction>(2)) containing information about the signal."
+"B<sigwaitinfo>() removes the signal from the set of pending signals and "
+"returns the signal number as its function result. If the I<info> argument "
+"is not NULL, then the buffer that it points to is used to return a structure "
+"of type I<siginfo_t> (see B<sigaction>(2)) containing information about the "
+"signal."
msgstr ""
#. type: Plain text
-#: build/C/man2/sigwaitinfo.2:72
+#: build/C/man2/sigwaitinfo.2:76
msgid ""
-"Signals returned via B<sigwaitinfo>() are delivered in the usual order; see "
-"B<signal>(7) for further details."
+"If multiple signals in I<set> are pending for the caller, the signal that is "
+"retrieved by B<sigwaitinfo>() is determined according to the usual ordering "
+"rules; see B<signal>(7) for further details."
msgstr ""
#. type: Plain text
-#: build/C/man2/sigwaitinfo.2:84
+#: build/C/man2/sigwaitinfo.2:88
msgid ""
"B<sigtimedwait>() operates in exactly the same way as B<sigwaitinfo>() "
"except that it has an additional argument, I<timeout>, which specifies a "
msgstr ""
#. type: Plain text
-#: build/C/man2/sigwaitinfo.2:91
+#: build/C/man2/sigwaitinfo.2:95
#, no-wrap
msgid ""
"struct timespec {\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/sigwaitinfo.2:101
+#: build/C/man2/sigwaitinfo.2:105
msgid ""
"If both fields of this structure are specified as 0, a poll is performed: "
"B<sigtimedwait>() returns immediately, either with information about a "
msgstr ""
#. type: Plain text
-#: build/C/man2/sigwaitinfo.2:110
+#: build/C/man2/sigwaitinfo.2:114
msgid ""
"On success, both B<sigwaitinfo>() and B<sigtimedwait>() return a signal "
"number (i.e., a value greater than zero). On failure both calls return -1, "
msgstr ""
#. type: Plain text
-#: build/C/man2/sigwaitinfo.2:119
+#: build/C/man2/sigwaitinfo.2:123
msgid ""
-"No signal in I<set> was delivered within the I<timeout> period specified to "
-"B<sigtimedwait>()."
+"No signal in I<set> was became pending within the I<timeout> period "
+"specified to B<sigtimedwait>()."
msgstr ""
#. type: Plain text
-#: build/C/man2/sigwaitinfo.2:125
+#: build/C/man2/sigwaitinfo.2:129
msgid ""
"The wait was interrupted by a signal handler; see B<signal>(7). (This "
"handler was for a signal other than one of those in I<set>.)"
msgstr ""
#. type: Plain text
-#: build/C/man2/sigwaitinfo.2:129
+#: build/C/man2/sigwaitinfo.2:133
msgid "I<timeout> was invalid."
msgstr ""
#. type: Plain text
-#: build/C/man2/sigwaitinfo.2:148
+#: build/C/man2/sigwaitinfo.2:153
msgid ""
"In normal usage, the calling program blocks the signals in I<set> via a "
"prior call to B<sigprocmask>(2) (so that the default disposition for these "
-"signals does not occur if they are delivered between successive calls to "
+"signals does not occur if they become pending between successive calls to "
"B<sigwaitinfo>() or B<sigtimedwait>()) and does not establish handlers for "
"these signals. In a multithreaded program, the signal should be blocked in "
-"all threads to prevent the signal being delivered to a thread other than the "
-"one calling B<sigwaitinfo>() or B<sigtimedwait>())."
+"all threads, in order to prevent the signal being treated according to its "
+"default disposition in a thread other than the one calling B<sigwaitinfo>() "
+"or B<sigtimedwait>())."
msgstr ""
#. type: Plain text
-#: build/C/man2/sigwaitinfo.2:153
+#: build/C/man2/sigwaitinfo.2:158
msgid ""
"The set of signals that is pending for a given thread is the union of the "
"set of signals that is pending specifically for that thread and the set of "
msgstr ""
#. type: Plain text
-#: build/C/man2/sigwaitinfo.2:159
+#: build/C/man2/sigwaitinfo.2:164
msgid "Attempts to wait for B<SIGKILL> and B<SIGSTOP> are silently ignored."
msgstr ""
#. type: Plain text
-#: build/C/man2/sigwaitinfo.2:168
+#: build/C/man2/sigwaitinfo.2:173
msgid ""
"If multiple threads of a process are blocked waiting for the same signal(s) "
"in B<sigwaitinfo>() or B<sigtimedwait>(), then exactly one of the threads "
-"will actually receive the signal if it is delivered to the process as a "
+"will actually receive the signal if it becomes pending for the process as a "
"whole; which of the threads receives the signal is indeterminate."
msgstr ""
#. type: Plain text
-#: build/C/man2/sigwaitinfo.2:177
+#: build/C/man2/sigwaitinfo.2:182
msgid ""
"POSIX leaves the meaning of a NULL value for the I<timeout> argument of "
"B<sigtimedwait>() unspecified, permitting the possibility that this has the "
msgstr ""
#. type: Plain text
-#: build/C/man2/sigwaitinfo.2:182
+#: build/C/man2/sigwaitinfo.2:187
msgid ""
"On Linux, B<sigwaitinfo>() is a library function implemented on top of "
"B<sigtimedwait>()."
msgstr ""
#. type: Plain text
-#: build/C/man2/sigwaitinfo.2:194
+#: build/C/man2/sigwaitinfo.2:199
msgid ""
"B<kill>(2), B<sigaction>(2), B<signal>(2), B<signalfd>(2), B<sigpending>(2), "
"B<sigprocmask>(2), B<sigqueue>(3), B<sigsetops>(3), B<sigwait>(3), "
msgstr ""
#. type: TH
-#: build/C/man3/sysv_signal.3:23
+#: build/C/man3/sysv_signal.3:25
#, no-wrap
msgid "SYSV_SIGNAL"
msgstr ""
#. type: TH
-#: build/C/man3/sysv_signal.3:23
+#: build/C/man3/sysv_signal.3:25
#, no-wrap
msgid "2007-05-04"
msgstr ""
#. type: Plain text
-#: build/C/man3/sysv_signal.3:26
+#: build/C/man3/sysv_signal.3:28
msgid "sysv_signal - signal handling with System V semantics"
msgstr ""
#. type: Plain text
-#: build/C/man3/sysv_signal.3:28
+#: build/C/man3/sysv_signal.3:30
msgid "B<#define _GNU_SOURCE> /* See feature_test_macros(7) */"
msgstr ""
#. type: Plain text
-#: build/C/man3/sysv_signal.3:34
+#: build/C/man3/sysv_signal.3:36
msgid "B<sighandler_t sysv_signal(int >I<signum>B<, sighandler_t >I<handler>B<);>"
msgstr ""
#. type: Plain text
-#: build/C/man3/sysv_signal.3:39
+#: build/C/man3/sysv_signal.3:41
msgid ""
"The B<sysv_signal>() function takes the same arguments, and performs the "
"same task, as B<signal>(2)."
msgstr ""
#. type: Plain text
-#: build/C/man3/sysv_signal.3:49
+#: build/C/man3/sysv_signal.3:51
msgid ""
"However B<sysv_signal>() provides the System V unreliable signal semantics, "
"that is: a) the disposition of the signal is reset to the default when the "
msgstr ""
#. type: Plain text
-#: build/C/man3/sysv_signal.3:55
+#: build/C/man3/sysv_signal.3:57
msgid ""
"The B<sysv_signal>() function returns the previous value of the signal "
"handler, or B<SIG_ERR> on error."
msgstr ""
#. type: Plain text
-#: build/C/man3/sysv_signal.3:60
+#: build/C/man3/sysv_signal.3:62
msgid "This function is nonstandard."
msgstr ""
#. type: Plain text
-#: build/C/man3/sysv_signal.3:66
+#: build/C/man3/sysv_signal.3:68
msgid "Use of B<sysv_signal>() should be avoided; use B<sigaction>(2) instead."
msgstr ""
#. type: Plain text
-#: build/C/man3/sysv_signal.3:77
+#: build/C/man3/sysv_signal.3:79
msgid ""
"On older Linux systems, B<sysv_signal>() and B<signal>(2) were "
"equivalent. But on newer systems, B<signal>(2) provides reliable signal "
msgstr ""
#. type: Plain text
-#: build/C/man3/sysv_signal.3:90
+#: build/C/man3/sysv_signal.3:92
msgid "B<sigaction>(2), B<signal>(2), B<bsd_signal>(3), B<signal>(7)"
msgstr ""
#. type: TH
-#: build/C/man2/timer_create.2:29
+#: build/C/man2/timer_create.2:31
#, no-wrap
msgid "TIMER_CREATE"
msgstr ""
#. type: TH
-#: build/C/man2/timer_create.2:29
+#: build/C/man2/timer_create.2:31
#, no-wrap
msgid "2010-09-27"
msgstr ""
#. type: Plain text
-#: build/C/man2/timer_create.2:32
+#: build/C/man2/timer_create.2:34
msgid "timer_create - create a POSIX per-process timer"
msgstr ""
#. type: Plain text
-#: build/C/man2/timer_create.2:36
+#: build/C/man2/timer_create.2:38
#, no-wrap
msgid ""
"B<#include E<lt>signal.hE<gt>>\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/timer_create.2:39
+#: build/C/man2/timer_create.2:41
#, no-wrap
msgid ""
"B<int timer_create(clockid_t >I<clockid>B<, struct sigevent *>I<sevp>B<,>\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/timer_create.2:42 build/C/man2/timer_delete.2:34 build/C/man2/timer_getoverrun.2:34 build/C/man2/timer_settime.2:38
+#: build/C/man2/timer_create.2:44 build/C/man2/timer_delete.2:37 build/C/man2/timer_getoverrun.2:37 build/C/man2/timer_settime.2:41
msgid "Link with I<-lrt>."
msgstr ""
#. type: Plain text
-#: build/C/man2/timer_create.2:50
+#: build/C/man2/timer_create.2:52
msgid "B<timer_create>(): _POSIX_C_SOURCE\\ E<gt>=\\ 199309L"
msgstr ""
#. type: Plain text
-#: build/C/man2/timer_create.2:58
+#: build/C/man2/timer_create.2:60
msgid ""
"B<timer_create>() creates a new per-process interval timer. The ID of the "
"new timer is returned in the buffer pointed to by I<timerid>, which must be "
msgstr ""
#. type: Plain text
-#: build/C/man2/timer_create.2:63
+#: build/C/man2/timer_create.2:65
msgid ""
"The I<clockid> argument specifies the clock that the new timer uses to "
"measure time. It can be specified as one of the following values:"
msgstr ""
#. type: TP
-#: build/C/man2/timer_create.2:63
+#: build/C/man2/timer_create.2:65
#, no-wrap
msgid "B<CLOCK_REALTIME>"
msgstr ""
#. type: Plain text
-#: build/C/man2/timer_create.2:66
+#: build/C/man2/timer_create.2:68
msgid "A settable system-wide real-time clock."
msgstr ""
#. type: TP
-#: build/C/man2/timer_create.2:66
+#: build/C/man2/timer_create.2:68
#, no-wrap
msgid "B<CLOCK_MONOTONIC>"
msgstr ""
#. Note: the CLOCK_MONOTONIC_RAW clock added for clock_gettime()
#. in 2.6.28 is not supported for POSIX timers -- mtk, Feb 2009
#. type: Plain text
-#: build/C/man2/timer_create.2:73
+#: build/C/man2/timer_create.2:75
msgid ""
"A nonsettable monotonically increasing clock that measures time from some "
"unspecified point in the past that does not change after system startup."
msgstr ""
#. type: TP
-#: build/C/man2/timer_create.2:73
+#: build/C/man2/timer_create.2:75
#, no-wrap
msgid "B<CLOCK_PROCESS_CPUTIME_ID> (since Linux 2.6.12)"
msgstr ""
#. type: Plain text
-#: build/C/man2/timer_create.2:77
+#: build/C/man2/timer_create.2:79
msgid ""
"A clock that measures (user and system) CPU time consumed by (all of the "
"threads in) the calling process."
msgstr ""
#. type: TP
-#: build/C/man2/timer_create.2:77
+#: build/C/man2/timer_create.2:79
#, no-wrap
msgid "B<CLOCK_THREAD_CPUTIME_ID> (since Linux 2.6.12)"
msgstr ""
#. The CLOCK_MONOTONIC_RAW that was added in 2.6.28 can't be used
#. to create a timer -- mtk, Feb 2009
#. type: Plain text
-#: build/C/man2/timer_create.2:83
+#: build/C/man2/timer_create.2:85
msgid ""
"A clock that measures (user and system) CPU time consumed by the calling "
"thread."
msgstr ""
#. type: Plain text
-#: build/C/man2/timer_create.2:92
+#: build/C/man2/timer_create.2:94
msgid ""
"As well as the above values, I<clockid> can be specified as the I<clockid> "
"returned by a call to B<clock_getcpuclockid>(3) or "
msgstr ""
#. type: Plain text
-#: build/C/man2/timer_create.2:101
+#: build/C/man2/timer_create.2:103
msgid ""
"The I<sevp> argument points to a I<sigevent> structure that specifies how "
"the caller should be notified when the timer expires. For the definition "
msgstr ""
#. type: Plain text
-#: build/C/man2/timer_create.2:105
+#: build/C/man2/timer_create.2:107
msgid "The I<sevp.sigev_notify> field can have the following values:"
msgstr ""
#. type: Plain text
-#: build/C/man2/timer_create.2:110
+#: build/C/man2/timer_create.2:112
msgid ""
"Don't asynchronously notify when the timer expires. Progress of the timer "
"can be monitored using B<timer_gettime>(2)."
msgstr ""
#. type: Plain text
-#: build/C/man2/timer_create.2:128
+#: build/C/man2/timer_create.2:130
msgid ""
"Upon timer expiration, generate the signal I<sigev_signo> for the process. "
"See B<sigevent>(7) for general details. The I<si_code> field of the "
msgstr ""
#. type: Plain text
-#: build/C/man2/timer_create.2:136
+#: build/C/man2/timer_create.2:138
msgid ""
"Upon timer expiration, invoke I<sigev_notify_function> as if it were the "
"start function of a new thread. See B<sigevent>(7) for details."
msgstr ""
#. type: Plain text
-#: build/C/man2/timer_create.2:150
+#: build/C/man2/timer_create.2:152
msgid ""
"As for B<SIGEV_SIGNAL>, but the signal is targeted at the thread whose ID is "
"given in I<sigev_notify_thread_id>, which must be a thread in the same "
msgstr ""
#. type: Plain text
-#: build/C/man2/timer_create.2:165
+#: build/C/man2/timer_create.2:167
msgid ""
"Specifying I<sevp> as NULL is equivalent to specifying a pointer to a "
"I<sigevent> structure in which I<sigev_notify> is B<SIGEV_SIGNAL>, "
msgstr ""
#. type: Plain text
-#: build/C/man2/timer_create.2:173
+#: build/C/man2/timer_create.2:175
msgid ""
"On success, B<timer_create>() returns 0, and the ID of the new timer is "
"placed in I<*timerid>. On failure, -1 is returned, and I<errno> is set to "
msgstr ""
#. type: Plain text
-#: build/C/man2/timer_create.2:177
+#: build/C/man2/timer_create.2:179
msgid "Temporary error during kernel allocation of timer structures."
msgstr ""
#. type: Plain text
-#: build/C/man2/timer_create.2:185
+#: build/C/man2/timer_create.2:187
msgid ""
"Clock ID, I<sigev_notify>, I<sigev_signo>, or I<sigev_notify_thread_id> is "
"invalid."
#. glibc layer: malloc()
#. type: Plain text
-#: build/C/man2/timer_create.2:189
+#: build/C/man2/timer_create.2:191
msgid "Could not allocate memory."
msgstr ""
#. type: Plain text
-#: build/C/man2/timer_create.2:191 build/C/man2/timer_delete.2:64 build/C/man2/timer_getoverrun.2:94
+#: build/C/man2/timer_create.2:193 build/C/man2/timer_delete.2:67 build/C/man2/timer_getoverrun.2:97
msgid "This system call is available since Linux 2.6."
msgstr ""
#. type: Plain text
-#: build/C/man2/timer_create.2:196
+#: build/C/man2/timer_create.2:198
msgid "A program may create multiple interval timers using B<timer_create>()."
msgstr ""
#. type: Plain text
-#: build/C/man2/timer_create.2:201
+#: build/C/man2/timer_create.2:203
msgid ""
"Timers are not inherited by the child of a B<fork>(2), and are disarmed and "
"deleted during an B<execve>(2)."
msgstr ""
#. type: Plain text
-#: build/C/man2/timer_create.2:209
+#: build/C/man2/timer_create.2:211
msgid ""
"The kernel preallocates a \"queued real-time signal\" for each timer created "
"using B<timer_create>(). Consequently, the number of timers is limited by "
msgstr ""
#. type: Plain text
-#: build/C/man2/timer_create.2:214
+#: build/C/man2/timer_create.2:216
msgid ""
"The timers created by B<timer_create>() are commonly known as \"POSIX "
"(interval) timers\". The POSIX timers API consists of the following "
msgstr ""
#. type: Plain text
-#: build/C/man2/timer_create.2:217
+#: build/C/man2/timer_create.2:219
msgid "B<timer_create>(): Create a timer."
msgstr ""
#. type: Plain text
-#: build/C/man2/timer_create.2:220
+#: build/C/man2/timer_create.2:222
msgid "B<timer_settime>(2): Arm (start) or disarm (stop) a timer."
msgstr ""
#. type: Plain text
-#: build/C/man2/timer_create.2:224
+#: build/C/man2/timer_create.2:226
msgid ""
"B<timer_gettime>(2): Fetch the time remaining until the next expiration of a "
"timer, along with the interval setting of the timer."
msgstr ""
#. type: Plain text
-#: build/C/man2/timer_create.2:227
+#: build/C/man2/timer_create.2:229
msgid ""
"B<timer_getoverrun>(2): Return the overrun count for the last timer "
"expiration."
msgstr ""
#. type: Plain text
-#: build/C/man2/timer_create.2:230
+#: build/C/man2/timer_create.2:232
msgid "B<timer_delete>(2): Disarm and delete a timer."
msgstr ""
#. type: Plain text
-#: build/C/man2/timer_create.2:233
+#: build/C/man2/timer_create.2:235
msgid ""
"Part of the implementation of the POSIX timers API is provided by glibc. In "
"particular:"
msgstr ""
#. type: Plain text
-#: build/C/man2/timer_create.2:237
+#: build/C/man2/timer_create.2:239
msgid ""
"The functionality for B<SIGEV_THREAD> is implemented within glibc, rather "
"than the kernel."
msgstr ""
#. See the glibc source file kernel-posix-timers.h for the structure
-#. that glibc uses to map userspace timer IDs to kernel timer IDs
+#. that glibc uses to map user-space timer IDs to kernel timer IDs
#. The kernel-level timer ID is exposed via siginfo.si_tid.
#. type: Plain text
-#: build/C/man2/timer_create.2:243
+#: build/C/man2/timer_create.2:245
msgid ""
"The timer IDs presented at user level are maintained by glibc, which maps "
"these IDs to the timer IDs employed by the kernel."
msgstr ""
#. type: Plain text
-#: build/C/man2/timer_create.2:251
+#: build/C/man2/timer_create.2:253
msgid ""
"The POSIX timers system calls first appeared in Linux 2.6. Prior to this, "
-"glibc provided an incomplete userspace implementation (B<CLOCK_REALTIME> "
+"glibc provided an incomplete user-space implementation (B<CLOCK_REALTIME> "
"timers only) using POSIX threads, and current glibc falls back to this "
"implementation on systems running pre-2.6 Linux kernels."
msgstr ""
#. type: Plain text
-#: build/C/man2/timer_create.2:263
+#: build/C/man2/timer_create.2:265
msgid ""
"The program below takes two arguments: a sleep period in seconds, and a "
"timer frequency in nanoseconds. The program establishes a handler for the "
msgstr ""
#. type: Plain text
-#: build/C/man2/timer_create.2:268
+#: build/C/man2/timer_create.2:270
msgid ""
"In the following example run, the program sleeps for 1 second, after "
"creating a timer that has a frequency of 100 nanoseconds. By the time the "
msgstr ""
#. type: Plain text
-#: build/C/man2/timer_create.2:280
+#: build/C/man2/timer_create.2:282
#, no-wrap
msgid ""
"$ B<./a.out 1 100>\n"
" overrun count = 10004886\n"
msgstr ""
-#. type: SS
-#: build/C/man2/timer_create.2:282
-#, no-wrap
-msgid "Program Source"
-msgstr ""
-
#. type: Plain text
-#: build/C/man2/timer_create.2:290
+#: build/C/man2/timer_create.2:292
#, no-wrap
msgid ""
"#include E<lt>stdlib.hE<gt>\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/timer_create.2:293
+#: build/C/man2/timer_create.2:295
#, no-wrap
msgid ""
"#define CLOCKID CLOCK_REALTIME\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/timer_create.2:296
+#: build/C/man2/timer_create.2:298
#, no-wrap
msgid ""
"#define errExit(msg) do { perror(msg); exit(EXIT_FAILURE); \\e\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/timer_create.2:302
+#: build/C/man2/timer_create.2:304
#, no-wrap
msgid ""
"static void\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/timer_create.2:304
+#: build/C/man2/timer_create.2:306
#, no-wrap
msgid " tidp = si-E<gt>si_value.sival_ptr;\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/timer_create.2:307
+#: build/C/man2/timer_create.2:309
#, no-wrap
msgid ""
" printf(\" sival_ptr = %p; \", si-E<gt>si_value.sival_ptr);\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/timer_create.2:314
+#: build/C/man2/timer_create.2:316
#, no-wrap
msgid ""
" or = timer_getoverrun(*tidp);\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/timer_create.2:321
+#: build/C/man2/timer_create.2:323
#, no-wrap
msgid ""
"static void\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/timer_create.2:326
+#: build/C/man2/timer_create.2:328
#, no-wrap
msgid ""
" printf(\"Caught signal %d\\en\", sig);\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/timer_create.2:336
+#: build/C/man2/timer_create.2:338
#, no-wrap
msgid ""
"int\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/timer_create.2:342
+#: build/C/man2/timer_create.2:344
#, no-wrap
msgid ""
" if (argc != 3) {\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/timer_create.2:344
+#: build/C/man2/timer_create.2:346
#, no-wrap
msgid " /* Establish handler for timer signal */\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/timer_create.2:351
+#: build/C/man2/timer_create.2:353
#, no-wrap
msgid ""
" printf(\"Establishing handler for signal %d\\en\", SIG);\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/timer_create.2:353
+#: build/C/man2/timer_create.2:355
#, no-wrap
msgid " /* Block timer signal temporarily */\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/timer_create.2:359
+#: build/C/man2/timer_create.2:361
#, no-wrap
msgid ""
" printf(\"Blocking signal %d\\en\", SIG);\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/timer_create.2:361
+#: build/C/man2/timer_create.2:363
#, no-wrap
msgid " /* Create the timer */\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/timer_create.2:367
+#: build/C/man2/timer_create.2:369
#, no-wrap
msgid ""
" sev.sigev_notify = SIGEV_SIGNAL;\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/timer_create.2:369
+#: build/C/man2/timer_create.2:371
#, no-wrap
msgid " printf(\"timer ID is 0x%lx\\en\", (long) timerid);\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/timer_create.2:371
+#: build/C/man2/timer_create.2:373
#, no-wrap
msgid " /* Start the timer */\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/timer_create.2:377
+#: build/C/man2/timer_create.2:379
#, no-wrap
msgid ""
" freq_nanosecs = atoll(argv[2]);\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/timer_create.2:380
+#: build/C/man2/timer_create.2:382
#, no-wrap
msgid ""
" if (timer_settime(timerid, 0, &its, NULL) == -1)\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/timer_create.2:383
+#: build/C/man2/timer_create.2:385
#, no-wrap
msgid ""
" /* Sleep for a while; meanwhile, the timer may expire\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/timer_create.2:386
+#: build/C/man2/timer_create.2:388
#, no-wrap
msgid ""
" printf(\"Sleeping for %d seconds\\en\", atoi(argv[1]));\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/timer_create.2:389
+#: build/C/man2/timer_create.2:391
#, no-wrap
msgid ""
" /* Unlock the timer signal, so that timer notification\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/timer_create.2:393
+#: build/C/man2/timer_create.2:395
#, no-wrap
msgid ""
" printf(\"Unblocking signal %d\\en\", SIG);\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/timer_create.2:396 build/C/man2/timerfd_create.2:533
+#: build/C/man2/timer_create.2:398 build/C/man2/timerfd_create.2:540
#, no-wrap
msgid ""
" exit(EXIT_SUCCESS);\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/timer_create.2:410
+#: build/C/man2/timer_create.2:414
msgid ""
"B<clock_gettime>(2), B<setitimer>(2), B<timer_delete>(2), "
"B<timer_getoverrun>(2), B<timer_settime>(2), B<timerfd_create>(2), "
msgstr ""
#. type: TH
-#: build/C/man2/timer_delete.2:23
+#: build/C/man2/timer_delete.2:26
#, no-wrap
msgid "TIMER_DELETE"
msgstr ""
#. type: TH
-#: build/C/man2/timer_delete.2:23 build/C/man2/timer_getoverrun.2:23 build/C/man2/timer_settime.2:23
+#: build/C/man2/timer_delete.2:26 build/C/man2/timer_getoverrun.2:26
#, no-wrap
msgid "2009-02-20"
msgstr ""
#. type: Plain text
-#: build/C/man2/timer_delete.2:26
+#: build/C/man2/timer_delete.2:29
msgid "timer_delete - delete a POSIX per-process timer"
msgstr ""
#. type: Plain text
-#: build/C/man2/timer_delete.2:29 build/C/man2/timer_getoverrun.2:29 build/C/man2/timer_settime.2:30
+#: build/C/man2/timer_delete.2:32 build/C/man2/timer_getoverrun.2:32 build/C/man2/timer_settime.2:33
#, no-wrap
msgid "B<#include E<lt>time.hE<gt>>\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/timer_delete.2:31
+#: build/C/man2/timer_delete.2:34
#, no-wrap
msgid "B<int timer_delete(timer_t >I<timerid>B<);>\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/timer_delete.2:42
+#: build/C/man2/timer_delete.2:45
msgid "B<timer_delete>(): _POSIX_C_SOURCE\\ E<gt>=\\ 199309L"
msgstr ""
#. type: Plain text
-#: build/C/man2/timer_delete.2:50
+#: build/C/man2/timer_delete.2:53
msgid ""
"B<timer_delete>() deletes the timer whose ID is given in I<timerid>. If "
"the timer was armed at the time of this call, it is disarmed before being "
msgstr ""
#. type: Plain text
-#: build/C/man2/timer_delete.2:57
+#: build/C/man2/timer_delete.2:60
msgid ""
"On success, B<timer_delete>() returns 0. On failure, -1 is returned, and "
"I<errno> is set to indicate the error."
msgstr ""
#. type: Plain text
-#: build/C/man2/timer_delete.2:62 build/C/man2/timer_getoverrun.2:92
+#: build/C/man2/timer_delete.2:65 build/C/man2/timer_getoverrun.2:95
msgid "I<timerid> is not a valid timer ID."
msgstr ""
#. type: Plain text
-#: build/C/man2/timer_delete.2:72
+#: build/C/man2/timer_delete.2:75
msgid ""
"B<clock_gettime>(2), B<timer_create>(2), B<timer_getoverrun>(2), "
"B<timer_settime>(2), B<time>(7)"
msgstr ""
#. type: TH
-#: build/C/man2/timer_getoverrun.2:23
+#: build/C/man2/timer_getoverrun.2:26
#, no-wrap
msgid "TIMER_GETOVERRUN"
msgstr ""
#. type: Plain text
-#: build/C/man2/timer_getoverrun.2:26
+#: build/C/man2/timer_getoverrun.2:29
msgid "timer_getoverrun - get overrun count for a POSIX per-process timer"
msgstr ""
#. type: Plain text
-#: build/C/man2/timer_getoverrun.2:31
+#: build/C/man2/timer_getoverrun.2:34
#, no-wrap
msgid "B<int timer_getoverrun(timer_t >I<timerid>B<);>\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/timer_getoverrun.2:42
+#: build/C/man2/timer_getoverrun.2:45
msgid "B<timer_getoverrun>(): _POSIX_C_SOURCE\\ E<gt>=\\ 199309L"
msgstr ""
#. type: Plain text
-#: build/C/man2/timer_getoverrun.2:53
+#: build/C/man2/timer_getoverrun.2:56
msgid ""
"B<timer_getoverrun>() returns the \"overrun count\" for the timer referred "
"to by I<timerid>. An application can use the overrun count to accurately "
msgstr ""
#. type: Plain text
-#: build/C/man2/timer_getoverrun.2:73
+#: build/C/man2/timer_getoverrun.2:76
msgid ""
"When expiration notifications are delivered via a signal, overruns can occur "
"as follows. Regardless of whether or not a real-time signal is used for "
msgstr ""
#. type: Plain text
-#: build/C/man2/timer_getoverrun.2:79
+#: build/C/man2/timer_getoverrun.2:82
msgid ""
"Timer overruns can also occur when expiration notifications are delivered "
"via invocation of a thread, since there may be an arbitrary delay between an "
msgstr ""
#. type: Plain text
-#: build/C/man2/timer_getoverrun.2:87
+#: build/C/man2/timer_getoverrun.2:90
msgid ""
"On success, B<timer_getoverrun>() returns the overrun count of the "
"specified timer; this count may be 0 if no overruns have occurred. On "
msgstr ""
#. type: Plain text
-#: build/C/man2/timer_getoverrun.2:108
+#: build/C/man2/timer_getoverrun.2:111
msgid ""
"When timer notifications are delivered via signals (B<SIGEV_SIGNAL>), on "
"Linux it is also possible to obtain the overrun count via the I<si_overrun> "
#. FIXME . Austin bug filed, 11 Feb 09
#. type: Plain text
-#: build/C/man2/timer_getoverrun.2:112
+#: build/C/man2/timer_getoverrun.2:115
msgid ""
"POSIX.1-2001 only discusses timer overruns in the context of timer "
"notifications using signals."
#. Bug filed: http://bugzilla.kernel.org/show_bug.cgi?id=12665
#. http://thread.gmane.org/gmane.linux.kernel/113276/
#. type: Plain text
-#: build/C/man2/timer_getoverrun.2:125
+#: build/C/man2/timer_getoverrun.2:128
msgid ""
"POSIX.1-2001 specifies that if the timer overrun count is equal to or "
"greater than an implementation-defined maximum, B<DELAYTIMER_MAX>, then "
msgstr ""
#. type: Plain text
-#: build/C/man2/timer_getoverrun.2:128 build/C/man2/timer_settime.2:208
+#: build/C/man2/timer_getoverrun.2:131 build/C/man2/timer_settime.2:212
msgid "See B<timer_create>(2)."
msgstr ""
#. type: Plain text
-#: build/C/man2/timer_getoverrun.2:138
+#: build/C/man2/timer_getoverrun.2:141
msgid ""
"B<clock_gettime>(2), B<sigaction>(2), B<signalfd>(2), B<sigwaitinfo>(2), "
"B<timer_create>(2), B<timer_delete>(2), B<timer_settime>(2), B<signal>(7), "
msgstr ""
#. type: TH
-#: build/C/man2/timer_settime.2:23
+#: build/C/man2/timer_settime.2:26
#, no-wrap
msgid "TIMER_SETTIME"
msgstr ""
+#. type: TH
+#: build/C/man2/timer_settime.2:26
+#, no-wrap
+msgid "2012-10-15"
+msgstr ""
+
#. type: Plain text
-#: build/C/man2/timer_settime.2:27
+#: build/C/man2/timer_settime.2:30
msgid ""
"timer_settime, timer_gettime - arm/disarm and fetch state of POSIX "
"per-process timer"
msgstr ""
#. type: Plain text
-#: build/C/man2/timer_settime.2:35
+#: build/C/man2/timer_settime.2:38
#, no-wrap
msgid ""
"B<int timer_settime(timer_t >I<timerid>B<, int >I<flags>B<,>\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/timer_settime.2:47
+#: build/C/man2/timer_settime.2:50
msgid "B<timer_settime>(), B<timer_gettime>(): _POSIX_C_SOURCE\\ E<gt>=\\ 199309L"
msgstr ""
#. type: Plain text
-#: build/C/man2/timer_settime.2:60
+#: build/C/man2/timer_settime.2:63
msgid ""
"B<timer_settime>() arms or disarms the timer identified by I<timerid>. The "
-"I<new_value> argument is an I<itimerspec> structure that specifies the new "
-"initial value and the new interval for the timer. The I<itimerspec> "
-"structure is defined as follows:"
+"I<new_value> argument is pointer to an I<itimerspec> structure that "
+"specifies the new initial value and the new interval for the timer. The "
+"I<itimerspec> structure is defined as follows:"
msgstr ""
#. type: Plain text
-#: build/C/man2/timer_settime.2:67 build/C/man2/timerfd_create.2:127
+#: build/C/man2/timer_settime.2:70 build/C/man2/timerfd_create.2:128
#, no-wrap
msgid ""
"struct timespec {\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/timer_settime.2:72
+#: build/C/man2/timer_settime.2:75
#, no-wrap
msgid ""
"struct itimerspec {\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/timer_settime.2:84
+#: build/C/man2/timer_settime.2:87
msgid ""
"Each of the substructures of the I<itimerspec> structure is a I<timespec> "
"structure that allows a time value to be specified in seconds and "
msgstr ""
#. type: Plain text
-#: build/C/man2/timer_settime.2:98
+#: build/C/man2/timer_settime.2:101
msgid ""
"If I<new_value-E<gt>it_value> specifies a nonzero value (i.e., either "
"subfield is nonzero), then B<timer_settime>() arms (starts) the timer, "
msgstr ""
#. type: Plain text
-#: build/C/man2/timer_settime.2:110
+#: build/C/man2/timer_settime.2:113
msgid ""
"The I<new_value-E<gt>it_interval> field specifies the period of the timer, "
"in seconds and nanoseconds. If this field is nonzero, then each time that "
#. By experiment: the overrun count is set correctly, for CLOCK_REALTIME.
#. type: Plain text
-#: build/C/man2/timer_settime.2:131
+#: build/C/man2/timer_settime.2:134
msgid ""
"By default, the initial expiration time specified in "
"I<new_value-E<gt>it_value> is interpreted relative to the current time on "
#. Similar remarks might apply with respect to process and thread CPU time
#. clocks, but these clocks are not currently (2.6.28) settable on Linux.
#. type: Plain text
-#: build/C/man2/timer_settime.2:141
+#: build/C/man2/timer_settime.2:144
msgid ""
"If the value of the B<CLOCK_REALTIME> clock is adjusted while an absolute "
"timer based on that clock is armed, then the expiration of the timer will be "
msgstr ""
#. type: Plain text
-#: build/C/man2/timer_settime.2:149
+#: build/C/man2/timer_settime.2:153
msgid ""
-"If I<old_value> is not NULL, then it returns the previous interval of the "
-"timer (in I<old_value-E<gt>it_interval>) and the amount of time until the "
-"timer would previously have next expired (in I<old_value-E<gt>it_value>)."
+"If I<old_value> is not NULL, then it points to a buffer that is used to "
+"return the previous interval of the timer (in I<old_value-E<gt>it_interval>) "
+"and the amount of time until the timer would previously have next expired "
+"(in I<old_value-E<gt>it_value>)."
msgstr ""
#. type: Plain text
-#: build/C/man2/timer_settime.2:169
+#: build/C/man2/timer_settime.2:173
msgid ""
"B<timer_gettime>() returns the time until next expiration, and the "
"interval, for the timer specified by I<timerid>, in the buffer pointed to by "
msgstr ""
#. type: Plain text
-#: build/C/man2/timer_settime.2:178
+#: build/C/man2/timer_settime.2:182
msgid ""
"On success, B<timer_settime>() and B<timer_gettime>() return 0. On error, "
"-1 is returned, and I<errno> is set to indicate the error."
msgstr ""
#. type: Plain text
-#: build/C/man2/timer_settime.2:180
+#: build/C/man2/timer_settime.2:184
msgid "These functions may fail with the following errors:"
msgstr ""
#. type: Plain text
-#: build/C/man2/timer_settime.2:187
+#: build/C/man2/timer_settime.2:191
msgid "I<new_value>, I<old_value>, or I<curr_value> is not a valid pointer."
msgstr ""
#. FIXME . eventually: invalid value in flags
#. type: Plain text
-#: build/C/man2/timer_settime.2:192
+#: build/C/man2/timer_settime.2:196
msgid "I<timerid> is invalid."
msgstr ""
#. type: Plain text
-#: build/C/man2/timer_settime.2:195
+#: build/C/man2/timer_settime.2:199
msgid "B<timer_settime>() may fail with the following errors:"
msgstr ""
#. type: Plain text
-#: build/C/man2/timer_settime.2:201
+#: build/C/man2/timer_settime.2:205
msgid ""
"I<new_value.it_value> is negative; or I<new_value.it_value.tv_nsec> is "
"negative or greater than 999,999,999."
msgstr ""
#. type: Plain text
-#: build/C/man2/timer_settime.2:203
+#: build/C/man2/timer_settime.2:207
msgid "These system calls are available since Linux 2.6."
msgstr ""
#. type: Plain text
-#: build/C/man2/timer_settime.2:212
+#: build/C/man2/timer_settime.2:216
msgid "B<timer_create>(2), B<timer_getoverrun>(2), B<time>(7)"
msgstr ""
#. type: TH
-#: build/C/man2/timerfd_create.2:20
+#: build/C/man2/timerfd_create.2:21
#, no-wrap
msgid "TIMERFD_CREATE"
msgstr ""
#. type: TH
-#: build/C/man2/timerfd_create.2:20
+#: build/C/man2/timerfd_create.2:21
#, no-wrap
msgid "2011-09-14"
msgstr ""
#. type: Plain text
-#: build/C/man2/timerfd_create.2:24
+#: build/C/man2/timerfd_create.2:25
msgid ""
"timerfd_create, timerfd_settime, timerfd_gettime - timers that notify via "
"file descriptors"
msgstr ""
#. type: Plain text
-#: build/C/man2/timerfd_create.2:27
+#: build/C/man2/timerfd_create.2:28
#, no-wrap
msgid "B<#include E<lt>sys/timerfd.hE<gt>>\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/timerfd_create.2:29
+#: build/C/man2/timerfd_create.2:30
#, no-wrap
msgid "B<int timerfd_create(int >I<clockid>B<, int >I<flags>B<);>\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/timerfd_create.2:33
+#: build/C/man2/timerfd_create.2:34
#, no-wrap
msgid ""
"B<int timerfd_settime(int >I<fd>B<, int >I<flags>B<,>\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/timerfd_create.2:35
+#: build/C/man2/timerfd_create.2:36
#, no-wrap
msgid "B<int timerfd_gettime(int >I<fd>B<, struct itimerspec *>I<curr_value>B<);>\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/timerfd_create.2:48
+#: build/C/man2/timerfd_create.2:49
msgid ""
"These system calls create and operate on a timer that delivers timer "
"expiration notifications via a file descriptor. They provide an alternative "
msgstr ""
#. type: Plain text
-#: build/C/man2/timerfd_create.2:60
+#: build/C/man2/timerfd_create.2:61
msgid ""
"The use of these three system calls is analogous to the use of "
"B<timer_create>(2), B<timer_settime>(2), and B<timer_gettime>(2). (There is "
msgstr ""
#. type: SS
-#: build/C/man2/timerfd_create.2:60
+#: build/C/man2/timerfd_create.2:61
#, no-wrap
msgid "timerfd_create()"
msgstr ""
#. type: Plain text
-#: build/C/man2/timerfd_create.2:79
+#: build/C/man2/timerfd_create.2:80
msgid ""
"B<timerfd_create>() creates a new timer object, and returns a file "
"descriptor that refers to that timer. The I<clockid> argument specifies the "
msgstr ""
#. type: Plain text
-#: build/C/man2/timerfd_create.2:84
+#: build/C/man2/timerfd_create.2:85
msgid ""
"Starting with Linux 2.6.27, the following values may be bitwise ORed in "
"I<flags> to change the behavior of B<timerfd_create>():"
msgstr ""
#. type: TP
-#: build/C/man2/timerfd_create.2:84
+#: build/C/man2/timerfd_create.2:85
#, no-wrap
msgid "B<TFD_NONBLOCK>"
msgstr ""
#. type: TP
-#: build/C/man2/timerfd_create.2:92
+#: build/C/man2/timerfd_create.2:93
#, no-wrap
msgid "B<TFD_CLOEXEC>"
msgstr ""
#. type: Plain text
-#: build/C/man2/timerfd_create.2:106
+#: build/C/man2/timerfd_create.2:107
msgid ""
"In Linux versions up to and including 2.6.26, I<flags> must be specified as "
"zero."
msgstr ""
#. type: SS
-#: build/C/man2/timerfd_create.2:106
+#: build/C/man2/timerfd_create.2:107
#, no-wrap
msgid "timerfd_settime()"
msgstr ""
#. type: Plain text
-#: build/C/man2/timerfd_create.2:111
+#: build/C/man2/timerfd_create.2:112
msgid ""
"B<timerfd_settime>() arms (starts) or disarms (stops) the timer referred "
"to by the file descriptor I<fd>."
msgstr ""
#. type: Plain text
-#: build/C/man2/timerfd_create.2:120
+#: build/C/man2/timerfd_create.2:121
msgid ""
"The I<new_value> argument specifies the initial expiration and interval for "
"the timer. The I<itimer> structure used for this argument contains two "
msgstr ""
#. type: Plain text
-#: build/C/man2/timerfd_create.2:132
+#: build/C/man2/timerfd_create.2:133
#, no-wrap
msgid ""
"struct itimerspec {\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/timerfd_create.2:144
+#: build/C/man2/timerfd_create.2:145
msgid ""
"I<new_value.it_value> specifies the initial expiration of the timer, in "
"seconds and nanoseconds. Setting either field of I<new_value.it_value> to a "
msgstr ""
#. type: Plain text
-#: build/C/man2/timerfd_create.2:153
+#: build/C/man2/timerfd_create.2:154
msgid ""
"Setting one or both fields of I<new_value.it_interval> to nonzero values "
"specifies the period, in seconds and nanoseconds, for repeated timer "
msgstr ""
#. type: Plain text
-#: build/C/man2/timerfd_create.2:169
+#: build/C/man2/timerfd_create.2:170
msgid ""
"The I<flags> argument is either 0, to start a relative timer "
"(I<new_value.it_value> specifies a time relative to the current value of the "
msgstr ""
#. type: Plain text
-#: build/C/man2/timerfd_create.2:180
+#: build/C/man2/timerfd_create.2:181
msgid ""
"If the I<old_value> argument is not NULL, then the I<itimerspec> structure "
"that it points to is used to return the setting of the timer that was "
msgstr ""
#. type: SS
-#: build/C/man2/timerfd_create.2:180
+#: build/C/man2/timerfd_create.2:181
#, no-wrap
msgid "timerfd_gettime()"
msgstr ""
#. type: Plain text
-#: build/C/man2/timerfd_create.2:189
+#: build/C/man2/timerfd_create.2:190
msgid ""
"B<timerfd_gettime>() returns, in I<curr_value>, an I<itimerspec> structure "
"that contains the current setting of the timer referred to by the file "
msgstr ""
#. type: Plain text
-#: build/C/man2/timerfd_create.2:199
+#: build/C/man2/timerfd_create.2:200
msgid ""
"The I<it_value> field returns the amount of time until the timer will next "
"expire. If both fields of this structure are zero, then the timer is "
msgstr ""
#. type: Plain text
-#: build/C/man2/timerfd_create.2:206
+#: build/C/man2/timerfd_create.2:207
msgid ""
"The I<it_interval> field returns the interval of the timer. If both fields "
"of this structure are zero, then the timer is set to expire just once, at "
msgstr ""
#. type: SS
-#: build/C/man2/timerfd_create.2:206
+#: build/C/man2/timerfd_create.2:207
#, no-wrap
msgid "Operating on a timer file descriptor"
msgstr ""
#. type: Plain text
-#: build/C/man2/timerfd_create.2:210
+#: build/C/man2/timerfd_create.2:211
msgid ""
"The file descriptor returned by B<timerfd_create>() supports the following "
"operations:"
msgstr ""
#. type: Plain text
-#: build/C/man2/timerfd_create.2:224
+#: build/C/man2/timerfd_create.2:225
msgid ""
"If the timer has already expired one or more times since its settings were "
"last modified using B<timerfd_settime>(), or since the last successful "
msgstr ""
#. type: Plain text
-#: build/C/man2/timerfd_create.2:237
+#: build/C/man2/timerfd_create.2:238
msgid ""
"If no timer expirations have occurred at the time of the B<read>(2), then "
"the call either blocks until the next timer expiration, or fails with the "
msgstr ""
#. type: Plain text
-#: build/C/man2/timerfd_create.2:243
+#: build/C/man2/timerfd_create.2:244
msgid ""
"A B<read>(2) will fail with the error B<EINVAL> if the size of the supplied "
"buffer is less than 8 bytes."
msgstr ""
#. type: Plain text
-#: build/C/man2/timerfd_create.2:254
+#: build/C/man2/timerfd_create.2:255
msgid ""
"The file descriptor is readable (the B<select>(2) I<readfds> argument; the "
"B<poll>(2) B<POLLIN> flag) if one or more timer expirations have occurred."
msgstr ""
#. type: Plain text
-#: build/C/man2/timerfd_create.2:261
+#: build/C/man2/timerfd_create.2:262
msgid ""
"The file descriptor also supports the other file-descriptor multiplexing "
"APIs: B<pselect>(2), B<ppoll>(2), and B<epoll>(7)."
msgstr ""
#. type: Plain text
-#: build/C/man2/timerfd_create.2:268
+#: build/C/man2/timerfd_create.2:269
msgid ""
"When the file descriptor is no longer required it should be closed. When "
"all file descriptors associated with the same timer object have been closed, "
msgstr ""
#. type: Plain text
-#: build/C/man2/timerfd_create.2:280
+#: build/C/man2/timerfd_create.2:281
msgid ""
"After a B<fork>(2), the child inherits a copy of the file descriptor created "
"by B<timerfd_create>(). The file descriptor refers to the same underlying "
msgstr ""
#. type: Plain text
-#: build/C/man2/timerfd_create.2:286
+#: build/C/man2/timerfd_create.2:287
msgid ""
"A file descriptor created by B<timerfd_create>() is preserved across "
"B<execve>(2), and continues to generate timer expirations if the timer was "
msgstr ""
#. type: Plain text
-#: build/C/man2/timerfd_create.2:293
+#: build/C/man2/timerfd_create.2:294
msgid ""
"On success, B<timerfd_create>() returns a new file descriptor. On error, "
"-1 is returned and I<errno> is set to indicate the error."
msgstr ""
#. type: Plain text
-#: build/C/man2/timerfd_create.2:301
+#: build/C/man2/timerfd_create.2:302
msgid ""
"B<timerfd_settime>() and B<timerfd_gettime>() return 0 on success; on "
"error they return -1, and set I<errno> to indicate the error."
msgstr ""
#. type: Plain text
-#: build/C/man2/timerfd_create.2:304
+#: build/C/man2/timerfd_create.2:305
msgid "B<timerfd_create>() can fail with the following errors:"
msgstr ""
#. type: Plain text
-#: build/C/man2/timerfd_create.2:312
+#: build/C/man2/timerfd_create.2:313
msgid "The I<clockid> argument is neither B<CLOCK_MONOTONIC> nor B<CLOCK_REALTIME>;"
msgstr ""
#. type: Plain text
-#: build/C/man2/timerfd_create.2:332
+#: build/C/man2/timerfd_create.2:333
msgid "There was insufficient kernel memory to create the timer."
msgstr ""
#. type: Plain text
-#: build/C/man2/timerfd_create.2:337
+#: build/C/man2/timerfd_create.2:338
msgid ""
"B<timerfd_settime>() and B<timerfd_gettime>() can fail with the following "
"errors:"
msgstr ""
#. type: Plain text
-#: build/C/man2/timerfd_create.2:341
+#: build/C/man2/timerfd_create.2:342
msgid "I<fd> is not a valid file descriptor."
msgstr ""
#. type: Plain text
-#: build/C/man2/timerfd_create.2:352
+#: build/C/man2/timerfd_create.2:353
msgid "I<fd> is not a valid timerfd file descriptor."
msgstr ""
#. type: Plain text
-#: build/C/man2/timerfd_create.2:355
+#: build/C/man2/timerfd_create.2:356
msgid "B<timerfd_settime>() can also fail with the following errors:"
msgstr ""
#. type: Plain text
-#: build/C/man2/timerfd_create.2:361
+#: build/C/man2/timerfd_create.2:362
msgid ""
"I<new_value> is not properly initialized (one of the I<tv_nsec> falls "
"outside the range zero to 999,999,999)."
#. This case only checked since 2.6.29, and 2.2.2[78].some-stable-version.
#. In older kernel versions, no check was made for invalid flags.
#. type: Plain text
-#: build/C/man2/timerfd_create.2:367
+#: build/C/man2/timerfd_create.2:368
msgid "I<flags> is invalid."
msgstr ""
#. type: Plain text
-#: build/C/man2/timerfd_create.2:370
+#: build/C/man2/timerfd_create.2:371
msgid ""
"These system calls are available on Linux since kernel 2.6.25. Library "
"support is provided by glibc since version 2.8."
msgstr ""
+#. 2.6.29
+#. type: Plain text
+#: build/C/man2/timerfd_create.2:379
+msgid ""
+"Currently, B<timerfd_create>() supports fewer types of clock IDs than "
+"B<timer_create>(2)."
+msgstr ""
+
#. type: Plain text
-#: build/C/man2/timerfd_create.2:381
+#: build/C/man2/timerfd_create.2:388
msgid ""
"The following program creates a timer and then monitors its progress. The "
"program accepts up to three command-line arguments. The first argument "
msgstr ""
#. type: Plain text
-#: build/C/man2/timerfd_create.2:383 build/C/man2/wait.2:541
+#: build/C/man2/timerfd_create.2:390 build/C/man2/wait.2:555
msgid "The following shell session demonstrates the use of the program:"
msgstr ""
#. type: Plain text
-#: build/C/man2/timerfd_create.2:398
+#: build/C/man2/timerfd_create.2:405
#, no-wrap
msgid ""
"$B< a.out 3 1 100>\n"
#
#. ////////////////////////////////////////////////////////////
#. type: Plain text
-#: build/C/man2/timerfd_create.2:447
+#: build/C/man2/timerfd_create.2:454
#, no-wrap
msgid ""
"#include E<lt>sys/timerfd.hE<gt>\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/timerfd_create.2:450
+#: build/C/man2/timerfd_create.2:457
#, no-wrap
msgid ""
"#define handle_error(msg) \\e\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/timerfd_create.2:458
+#: build/C/man2/timerfd_create.2:465
#, no-wrap
msgid ""
"static void\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/timerfd_create.2:464
+#: build/C/man2/timerfd_create.2:471
#, no-wrap
msgid ""
" if (first_call) {\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/timerfd_create.2:467
+#: build/C/man2/timerfd_create.2:474
#, no-wrap
msgid ""
" if (clock_gettime(CLOCK_MONOTONIC, &curr) == -1)\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/timerfd_create.2:476
+#: build/C/man2/timerfd_create.2:483
#, no-wrap
msgid ""
" secs = curr.tv_sec - start.tv_sec;\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/timerfd_create.2:485
+#: build/C/man2/timerfd_create.2:492
#, no-wrap
msgid ""
"int\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/timerfd_create.2:491
+#: build/C/man2/timerfd_create.2:498
#, no-wrap
msgid ""
" if ((argc != 2) && (argc != 4)) {\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/timerfd_create.2:494
+#: build/C/man2/timerfd_create.2:501
#, no-wrap
msgid ""
" if (clock_gettime(CLOCK_REALTIME, &now) == -1)\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/timerfd_create.2:497
+#: build/C/man2/timerfd_create.2:504
#, no-wrap
msgid ""
" /* Create a CLOCK_REALTIME absolute timer with initial\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/timerfd_create.2:508
+#: build/C/man2/timerfd_create.2:515
#, no-wrap
msgid ""
" new_value.it_value.tv_sec = now.tv_sec + atoi(argv[1]);\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/timerfd_create.2:512
+#: build/C/man2/timerfd_create.2:519
#, no-wrap
msgid ""
" fd = timerfd_create(CLOCK_REALTIME, 0);\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/timerfd_create.2:515
+#: build/C/man2/timerfd_create.2:522
#, no-wrap
msgid ""
" if (timerfd_settime(fd, TFD_TIMER_ABSTIME, &new_value, NULL) == -1)\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/timerfd_create.2:518
+#: build/C/man2/timerfd_create.2:525
#, no-wrap
msgid ""
" print_elapsed_time();\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/timerfd_create.2:523
+#: build/C/man2/timerfd_create.2:530
#, no-wrap
msgid ""
" for (tot_exp = 0; tot_exp E<lt> max_exp;) {\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/timerfd_create.2:530
+#: build/C/man2/timerfd_create.2:537
#, no-wrap
msgid ""
" tot_exp += exp;\n"
" }\n"
msgstr ""
-#. 2.6.29
-#. type: Plain text
-#: build/C/man2/timerfd_create.2:540
-msgid ""
-"Currently, B<timerfd_create>() supports fewer types of clock IDs than "
-"B<timer_create>(2)."
-msgstr ""
-
#. type: Plain text
-#: build/C/man2/timerfd_create.2:552
+#: build/C/man2/timerfd_create.2:553
msgid ""
"B<eventfd>(2), B<poll>(2), B<read>(2), B<select>(2), B<setitimer>(2), "
"B<signalfd>(2), B<timer_create>(2), B<timer_gettime>(2), "
msgstr ""
#. type: Plain text
-#: build/C/man2/tkill.2:51
+#: build/C/man2/tkill.2:54
msgid ""
"B<tgkill>() sends the signal I<sig> to the thread with the thread ID I<tid> "
"in the thread group I<tgid>. (By contrast, B<kill>(2) can only be used to "
"will be delivered to an arbitrary thread within that process.)"
msgstr ""
+#. FIXME: Maybe say something about the following:
+#. http://sourceware.org/bugzilla/show_bug.cgi?id=12889
+#. Rich Felker <bugdal@aerifal.cx>
+#. There is a race condition in pthread_kill: it is possible that,
+#. between the time pthread_kill reads the pid/tid from the target
+#. thread descriptor and the time it makes the tgkill syscall,
+#. the target thread terminates and the same tid gets assigned
+#. to a new thread in the same process.
+#
+#. (The tgkill syscall was designed to eliminate a similar race
+#. condition in tkill, but it only succeeded in eliminating races
+#. where the tid gets reused in a different process, and does not
+#. help if the same tid gets assigned to a new thread in the
+#. same process.)
+#
+#. The only solution I can see is to introduce a mutex that ensures
+#. that a thread cannot exit while pthread_kill is being called on it.
+#
+#. Note that in most real-world situations, like almost all race
+#. conditions, this one will be extremely rare. To make it
+#. measurable, one could exhaust all but 1-2 available pid values,
+#. possibly by lowering the max pid parameter in /proc, forcing
+#. the same tid to be reused rapidly.
#. type: Plain text
-#: build/C/man2/tkill.2:59
+#: build/C/man2/tkill.2:85
msgid ""
"B<tkill>() is an obsolete predecessor to B<tgkill>(). It only allows the "
"target thread ID to be specified, which may result in the wrong thread being "
msgstr ""
#. type: Plain text
-#: build/C/man2/tkill.2:66
+#: build/C/man2/tkill.2:92
msgid "If I<tgid> is specified as -1, B<tgkill>() is equivalent to B<tkill>()."
msgstr ""
#. type: Plain text
-#: build/C/man2/tkill.2:69
+#: build/C/man2/tkill.2:95
msgid ""
"These are the raw system call interfaces, meant for internal thread library "
"use."
msgstr ""
#. type: Plain text
-#: build/C/man2/tkill.2:77
+#: build/C/man2/tkill.2:103
msgid "An invalid thread ID, thread group ID, or signal was specified."
msgstr ""
#. type: Plain text
-#: build/C/man2/tkill.2:82
+#: build/C/man2/tkill.2:108
msgid "Permission denied. For the required permissions, see B<kill>(2)."
msgstr ""
#. type: Plain text
-#: build/C/man2/tkill.2:85
+#: build/C/man2/tkill.2:111
msgid "No process with the specified thread ID (and thread group ID) exists."
msgstr ""
#. type: Plain text
-#: build/C/man2/tkill.2:90
+#: build/C/man2/tkill.2:116
msgid ""
"B<tkill>() is supported since Linux 2.4.19 / 2.5.4. B<tgkill>() was added "
"in Linux 2.5.75."
msgstr ""
#. type: Plain text
-#: build/C/man2/tkill.2:96
+#: build/C/man2/tkill.2:122
msgid ""
"B<tkill>() and B<tgkill>() are Linux-specific and should not be used in "
"programs that are intended to be portable."
msgstr ""
#. type: Plain text
-#: build/C/man2/tkill.2:102
+#: build/C/man2/tkill.2:128
msgid ""
"See the description of B<CLONE_THREAD> in B<clone>(2) for an explanation of "
"thread groups."
msgstr ""
#. type: Plain text
-#: build/C/man2/tkill.2:105
+#: build/C/man2/tkill.2:131
msgid ""
"Glibc does not provide wrappers for these system calls; call them using "
"B<syscall>(2)."
msgstr ""
#. type: Plain text
-#: build/C/man2/tkill.2:110
+#: build/C/man2/tkill.2:136
msgid "B<clone>(2), B<gettid>(2), B<kill>(2), B<rt_sigqueueinfo>(2)"
msgstr ""
#. type: TH
-#: build/C/man2/wait.2:50
+#: build/C/man2/wait.2:49
#, no-wrap
msgid "WAIT"
msgstr ""
+#. type: TH
+#: build/C/man2/wait.2:49
+#, no-wrap
+msgid "2012-12-21"
+msgstr ""
+
#. type: Plain text
-#: build/C/man2/wait.2:53
+#: build/C/man2/wait.2:52
msgid "wait, waitpid, waitid - wait for process to change state"
msgstr ""
#. type: Plain text
-#: build/C/man2/wait.2:55
+#: build/C/man2/wait.2:54
msgid "B<#include E<lt>sys/types.hE<gt>>"
msgstr ""
#. type: Plain text
-#: build/C/man2/wait.2:57
+#: build/C/man2/wait.2:56
msgid "B<#include E<lt>sys/wait.hE<gt>>"
msgstr ""
#. type: Plain text
-#: build/C/man2/wait.2:59
+#: build/C/man2/wait.2:58
msgid "B<pid_t wait(int *>I<status>B<);>"
msgstr ""
#. type: Plain text
-#: build/C/man2/wait.2:61
+#: build/C/man2/wait.2:60
msgid "B<pid_t waitpid(pid_t >I<pid>B<, int *>I<status>B<, int >I<options>B<);>"
msgstr ""
#. type: Plain text
-#: build/C/man2/wait.2:64
+#: build/C/man2/wait.2:63
msgid ""
"B<int waitid(idtype_t >I<idtype>B<, id_t >I<id>B<, siginfo_t *>I<infop>B<, "
"int >I<options>B<);>"
msgstr ""
#. type: Plain text
-#: build/C/man2/wait.2:73
+#: build/C/man2/wait.2:72
msgid "B<waitid>():"
msgstr ""
#. type: Plain text
-#: build/C/man2/wait.2:77
+#: build/C/man2/wait.2:76
msgid ""
"_SVID_SOURCE || _XOPEN_SOURCE\\ E<gt>=\\ 500 || _XOPEN_SOURCE\\ &&\\ "
"_XOPEN_SOURCE_EXTENDED"
msgstr ""
#. type: Plain text
-#: build/C/man2/wait.2:92
+#: build/C/man2/wait.2:91
msgid ""
"All of these system calls are used to wait for state changes in a child of "
"the calling process, and obtain information about the child whose state has "
msgstr ""
#. type: Plain text
-#: build/C/man2/wait.2:104
+#: build/C/man2/wait.2:103
msgid ""
"If a child has already changed state, then these calls return immediately. "
"Otherwise they block until either a child changes state or a signal handler "
msgstr ""
#. type: SS
-#: build/C/man2/wait.2:104
+#: build/C/man2/wait.2:103
#, no-wrap
msgid "wait() and waitpid()"
msgstr ""
#. type: Plain text
-#: build/C/man2/wait.2:112
+#: build/C/man2/wait.2:111
msgid ""
"The B<wait>() system call suspends execution of the calling process until "
"one of its children terminates. The call I<wait(&status)> is equivalent to:"
msgstr ""
#. type: Plain text
-#: build/C/man2/wait.2:115
+#: build/C/man2/wait.2:114
#, no-wrap
msgid " waitpid(-1, &status, 0);\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/wait.2:129
+#: build/C/man2/wait.2:128
msgid ""
"The B<waitpid>() system call suspends execution of the calling process "
"until a child specified by I<pid> argument has changed state. By default, "
msgstr ""
#. type: Plain text
-#: build/C/man2/wait.2:133
+#: build/C/man2/wait.2:132
msgid "The value of I<pid> can be:"
msgstr ""
#. type: IP
-#: build/C/man2/wait.2:133
+#: build/C/man2/wait.2:132
#, no-wrap
msgid "E<lt> -1"
msgstr ""
#. type: Plain text
-#: build/C/man2/wait.2:137
+#: build/C/man2/wait.2:136
msgid ""
"meaning wait for any child process whose process group ID is equal to the "
"absolute value of I<pid>."
msgstr ""
#. type: IP
-#: build/C/man2/wait.2:137
+#: build/C/man2/wait.2:136
#, no-wrap
msgid "-1"
msgstr ""
#. type: Plain text
-#: build/C/man2/wait.2:139
+#: build/C/man2/wait.2:138
msgid "meaning wait for any child process."
msgstr ""
#. type: IP
-#: build/C/man2/wait.2:139
+#: build/C/man2/wait.2:138
#, no-wrap
msgid "0"
msgstr ""
#. type: Plain text
-#: build/C/man2/wait.2:142
+#: build/C/man2/wait.2:141
msgid ""
"meaning wait for any child process whose process group ID is equal to that "
"of the calling process."
msgstr ""
#. type: IP
-#: build/C/man2/wait.2:142
+#: build/C/man2/wait.2:141
#, no-wrap
msgid "E<gt> 0"
msgstr ""
#. type: Plain text
-#: build/C/man2/wait.2:146
+#: build/C/man2/wait.2:145
msgid "meaning wait for the child whose process ID is equal to the value of I<pid>."
msgstr ""
#. type: Plain text
-#: build/C/man2/wait.2:150
+#: build/C/man2/wait.2:149
msgid "The value of I<options> is an OR of zero or more of the following constants:"
msgstr ""
#. type: TP
-#: build/C/man2/wait.2:150 build/C/man2/wait.2:279
+#: build/C/man2/wait.2:149 build/C/man2/wait.2:278
#, no-wrap
msgid "B<WNOHANG>"
msgstr ""
#. type: Plain text
-#: build/C/man2/wait.2:153
+#: build/C/man2/wait.2:152
msgid "return immediately if no child has exited."
msgstr ""
#. type: TP
-#: build/C/man2/wait.2:153
+#: build/C/man2/wait.2:152
#, no-wrap
msgid "B<WUNTRACED>"
msgstr ""
#. type: Plain text
-#: build/C/man2/wait.2:162
+#: build/C/man2/wait.2:161
msgid ""
"also return if a child has stopped (but not traced via B<ptrace>(2)). "
"Status for I<traced> children which have stopped is provided even if this "
msgstr ""
#. type: TP
-#: build/C/man2/wait.2:162
+#: build/C/man2/wait.2:161
#, no-wrap
msgid "B<WCONTINUED> (since Linux 2.6.10)"
msgstr ""
#. type: Plain text
-#: build/C/man2/wait.2:166
+#: build/C/man2/wait.2:165
msgid "also return if a stopped child has been resumed by delivery of B<SIGCONT>."
msgstr ""
#. type: Plain text
-#: build/C/man2/wait.2:168
+#: build/C/man2/wait.2:167
msgid "(For Linux-only options, see below.)"
msgstr ""
#. type: Plain text
-#: build/C/man2/wait.2:182
+#: build/C/man2/wait.2:181
msgid ""
"If I<status> is not NULL, B<wait>() and B<waitpid>() store status "
"information in the I<int> to which it points. This integer can be inspected "
msgstr ""
#. type: TP
-#: build/C/man2/wait.2:182
+#: build/C/man2/wait.2:181
#, no-wrap
msgid "B<WIFEXITED(>I<status>B<)>"
msgstr ""
#. type: Plain text
-#: build/C/man2/wait.2:190
+#: build/C/man2/wait.2:189
msgid ""
"returns true if the child terminated normally, that is, by calling "
"B<exit>(3) or B<_exit>(2), or by returning from main()."
msgstr ""
#. type: TP
-#: build/C/man2/wait.2:190
+#: build/C/man2/wait.2:189
#, no-wrap
msgid "B<WEXITSTATUS(>I<status>B<)>"
msgstr ""
#. type: Plain text
-#: build/C/man2/wait.2:203
+#: build/C/man2/wait.2:202
msgid ""
"returns the exit status of the child. This consists of the least "
"significant 8 bits of the I<status> argument that the child specified in a "
msgstr ""
#. type: TP
-#: build/C/man2/wait.2:203
+#: build/C/man2/wait.2:202
#, no-wrap
msgid "B<WIFSIGNALED(>I<status>B<)>"
msgstr ""
#. type: Plain text
-#: build/C/man2/wait.2:206
+#: build/C/man2/wait.2:205
msgid "returns true if the child process was terminated by a signal."
msgstr ""
#. type: TP
-#: build/C/man2/wait.2:206
+#: build/C/man2/wait.2:205
#, no-wrap
msgid "B<WTERMSIG(>I<status>B<)>"
msgstr ""
#. type: Plain text
-#: build/C/man2/wait.2:213
+#: build/C/man2/wait.2:212
msgid ""
"returns the number of the signal that caused the child process to "
"terminate. This macro should only be employed if B<WIFSIGNALED> returned "
msgstr ""
#. type: TP
-#: build/C/man2/wait.2:213
+#: build/C/man2/wait.2:212
#, no-wrap
msgid "B<WCOREDUMP(>I<status>B<)>"
msgstr ""
#. type: Plain text
-#: build/C/man2/wait.2:222
+#: build/C/man2/wait.2:221
msgid ""
"returns true if the child produced a core dump. This macro should only be "
"employed if B<WIFSIGNALED> returned true. This macro is not specified in "
msgstr ""
#. type: TP
-#: build/C/man2/wait.2:222
+#: build/C/man2/wait.2:221
#, no-wrap
msgid "B<WIFSTOPPED(>I<status>B<)>"
msgstr ""
#. type: Plain text
-#: build/C/man2/wait.2:229
+#: build/C/man2/wait.2:228
msgid ""
"returns true if the child process was stopped by delivery of a signal; this "
"is only possible if the call was done using B<WUNTRACED> or when the child "
msgstr ""
#. type: TP
-#: build/C/man2/wait.2:229
+#: build/C/man2/wait.2:228
#, no-wrap
msgid "B<WSTOPSIG(>I<status>B<)>"
msgstr ""
#. type: Plain text
-#: build/C/man2/wait.2:235
+#: build/C/man2/wait.2:234
msgid ""
"returns the number of the signal which caused the child to stop. This macro "
"should only be employed if B<WIFSTOPPED> returned true."
msgstr ""
#. type: TP
-#: build/C/man2/wait.2:235
+#: build/C/man2/wait.2:234
#, no-wrap
msgid "B<WIFCONTINUED(>I<status>B<)>"
msgstr ""
#. type: Plain text
-#: build/C/man2/wait.2:240
+#: build/C/man2/wait.2:239
msgid ""
"(since Linux 2.6.10) returns true if the child process was resumed by "
"delivery of B<SIGCONT>."
msgstr ""
#. type: SS
-#: build/C/man2/wait.2:240
+#: build/C/man2/wait.2:239
#, no-wrap
msgid "waitid()"
msgstr ""
#. type: Plain text
-#: build/C/man2/wait.2:245
+#: build/C/man2/wait.2:244
msgid ""
"The B<waitid>() system call (available since Linux 2.6.9) provides more "
"precise control over which child state changes to wait for."
msgstr ""
#. type: Plain text
-#: build/C/man2/wait.2:251
+#: build/C/man2/wait.2:250
msgid ""
"The I<idtype> and I<id> arguments select the child(ren) to wait for, as "
"follows:"
msgstr ""
#. type: IP
-#: build/C/man2/wait.2:251
+#: build/C/man2/wait.2:250
#, no-wrap
msgid "I<idtype> == B<P_PID>"
msgstr ""
#. type: Plain text
-#: build/C/man2/wait.2:254
+#: build/C/man2/wait.2:253
msgid "Wait for the child whose process ID matches I<id>."
msgstr ""
#. type: IP
-#: build/C/man2/wait.2:254
+#: build/C/man2/wait.2:253
#, no-wrap
msgid "I<idtype> == B<P_PGID>"
msgstr ""
#. type: Plain text
-#: build/C/man2/wait.2:257
+#: build/C/man2/wait.2:256
msgid "Wait for any child whose process group ID matches I<id>."
msgstr ""
#. type: IP
-#: build/C/man2/wait.2:257
+#: build/C/man2/wait.2:256
#, no-wrap
msgid "I<idtype> == B<P_ALL>"
msgstr ""
#. type: Plain text
-#: build/C/man2/wait.2:261
+#: build/C/man2/wait.2:260
msgid "Wait for any child; I<id> is ignored."
msgstr ""
#. type: Plain text
-#: build/C/man2/wait.2:265
+#: build/C/man2/wait.2:264
msgid ""
"The child state changes to wait for are specified by ORing one or more of "
"the following flags in I<options>:"
msgstr ""
#. type: TP
-#: build/C/man2/wait.2:265
+#: build/C/man2/wait.2:264
#, no-wrap
msgid "B<WEXITED>"
msgstr ""
#. type: Plain text
-#: build/C/man2/wait.2:268
+#: build/C/man2/wait.2:267
msgid "Wait for children that have terminated."
msgstr ""
#. type: TP
-#: build/C/man2/wait.2:268
+#: build/C/man2/wait.2:267
#, no-wrap
msgid "B<WSTOPPED>"
msgstr ""
#. type: Plain text
-#: build/C/man2/wait.2:271
+#: build/C/man2/wait.2:270
msgid "Wait for children that have been stopped by delivery of a signal."
msgstr ""
#. type: TP
-#: build/C/man2/wait.2:271
+#: build/C/man2/wait.2:270
#, no-wrap
msgid "B<WCONTINUED>"
msgstr ""
#. type: Plain text
-#: build/C/man2/wait.2:276
+#: build/C/man2/wait.2:275
msgid ""
"Wait for (previously stopped) children that have been resumed by delivery of "
"B<SIGCONT>."
msgstr ""
#. type: Plain text
-#: build/C/man2/wait.2:279
+#: build/C/man2/wait.2:278
msgid "The following flags may additionally be ORed in I<options>:"
msgstr ""
#. type: Plain text
-#: build/C/man2/wait.2:283
+#: build/C/man2/wait.2:282
msgid "As for B<waitpid>()."
msgstr ""
#. type: TP
-#: build/C/man2/wait.2:283
+#: build/C/man2/wait.2:282
#, no-wrap
msgid "B<WNOWAIT>"
msgstr ""
#. type: Plain text
-#: build/C/man2/wait.2:287
+#: build/C/man2/wait.2:286
msgid ""
"Leave the child in a waitable state; a later wait call can be used to again "
"retrieve the child status information."
msgstr ""
#. type: Plain text
-#: build/C/man2/wait.2:294
+#: build/C/man2/wait.2:293
msgid ""
"Upon successful return, B<waitid>() fills in the following fields of the "
"I<siginfo_t> structure pointed to by I<infop>:"
msgstr ""
#. type: Plain text
-#: build/C/man2/wait.2:297
+#: build/C/man2/wait.2:296
msgid "The process ID of the child."
msgstr ""
#. type: Plain text
-#: build/C/man2/wait.2:301
+#: build/C/man2/wait.2:300
msgid ""
"The real user ID of the child. (This field is not set on most other "
"implementations.)"
msgstr ""
#. type: Plain text
-#: build/C/man2/wait.2:305
+#: build/C/man2/wait.2:304
msgid "Always set to B<SIGCHLD>."
msgstr ""
#. type: TP
-#: build/C/man2/wait.2:305
+#: build/C/man2/wait.2:304
#, no-wrap
msgid "I<si_status>"
msgstr ""
#. type: Plain text
-#: build/C/man2/wait.2:315
+#: build/C/man2/wait.2:314
msgid ""
"Either the exit status of the child, as given to B<_exit>(2) (or "
"B<exit>(3)), or the signal that caused the child to terminate, stop, or "
msgstr ""
#. type: Plain text
-#: build/C/man2/wait.2:332
+#: build/C/man2/wait.2:331
msgid ""
"Set to one of: B<CLD_EXITED> (child called B<_exit>(2)); B<CLD_KILLED> "
"(child killed by signal); B<CLD_DUMPED> (child killed by signal, and dumped "
#. in this case, but at least one implementation (AIX 5.1)
#. does not -- MTK Nov 04
#. type: Plain text
-#: build/C/man2/wait.2:354
+#: build/C/man2/wait.2:353
msgid ""
"If B<WNOHANG> was specified in I<options> and there were no children in a "
"waitable state, then B<waitid>() returns 0 immediately and the state of the "
msgstr ""
#. type: Plain text
-#: build/C/man2/wait.2:358
+#: build/C/man2/wait.2:357
msgid ""
"B<wait>(): on success, returns the process ID of the terminated child; on "
"error, -1 is returned."
msgstr ""
#. type: Plain text
-#: build/C/man2/wait.2:367
+#: build/C/man2/wait.2:366
msgid ""
"B<waitpid>(): on success, returns the process ID of the child whose state "
"has changed; if B<WNOHANG> was specified and one or more child(ren) "
#. behavior that needs to be documented. See my Jan 2009 LKML mail
#. "waitid() return value strangeness when infop is NULL".
#. type: Plain text
-#: build/C/man2/wait.2:383
+#: build/C/man2/wait.2:382
msgid ""
"B<waitid>(): returns 0 on success or if B<WNOHANG> was specified and no "
"child(ren) specified by I<id> has yet changed state; on error, -1 is "
msgstr ""
#. type: TP
-#: build/C/man2/wait.2:384 build/C/man2/wait.2:389
+#: build/C/man2/wait.2:383 build/C/man2/wait.2:388
#, no-wrap
msgid "B<ECHILD>"
msgstr ""
#. type: Plain text
-#: build/C/man2/wait.2:389
+#: build/C/man2/wait.2:388
msgid ""
"(for B<wait>()) The calling process does not have any unwaited-for "
"children."
msgstr ""
#. type: Plain text
-#: build/C/man2/wait.2:409
+#: build/C/man2/wait.2:408
msgid ""
"(for B<waitpid>() or B<waitid>()) The process specified by I<pid> "
"(B<waitpid>()) or I<idtype> and I<id> (B<waitid>()) does not exist or is "
msgstr ""
#. type: Plain text
-#: build/C/man2/wait.2:416
+#: build/C/man2/wait.2:415
msgid ""
"B<WNOHANG> was not set and an unblocked signal or a B<SIGCHLD> was caught; "
"see B<signal>(7)."
msgstr ""
#. type: Plain text
-#: build/C/man2/wait.2:421
+#: build/C/man2/wait.2:420
msgid "The I<options> argument was invalid."
msgstr ""
#. type: Plain text
-#: build/C/man2/wait.2:436
+#: build/C/man2/wait.2:435
msgid ""
"A child that terminates, but has not been waited for becomes a \"zombie\". "
"The kernel maintains a minimal set of information about the zombie process "
msgstr ""
#. type: Plain text
-#: build/C/man2/wait.2:477
+#: build/C/man2/wait.2:476
msgid ""
"POSIX.1-2001 specifies that if the disposition of B<SIGCHLD> is set to "
"B<SIG_IGN> or the B<SA_NOCLDWAIT> flag is set for B<SIGCHLD> (see "
msgstr ""
#. type: Plain text
-#: build/C/man2/wait.2:493
+#: build/C/man2/wait.2:492
msgid ""
"In the Linux kernel, a kernel-scheduled thread is not a distinct construct "
"from a process. Instead, a thread is simply a process that is created using "
msgstr ""
#. type: Plain text
-#: build/C/man2/wait.2:500
+#: build/C/man2/wait.2:499
msgid ""
"The following Linux-specific I<options> are for use with children created "
"using B<clone>(2); they cannot be used with B<waitid>():"
msgstr ""
#. type: TP
-#: build/C/man2/wait.2:500
+#: build/C/man2/wait.2:499
#, no-wrap
msgid "B<__WCLONE>"
msgstr ""
#. since 0.99pl10
#. type: Plain text
-#: build/C/man2/wait.2:511
+#: build/C/man2/wait.2:510
msgid ""
"Wait for \"clone\" children only. If omitted then wait for \"non-clone\" "
"children only. (A \"clone\" child is one which delivers no signal, or a "
msgstr ""
#. type: TP
-#: build/C/man2/wait.2:511
+#: build/C/man2/wait.2:510
#, no-wrap
msgid "B<__WALL> (since Linux 2.4)"
msgstr ""
#. since patch-2.3.48
#. type: Plain text
-#: build/C/man2/wait.2:516
+#: build/C/man2/wait.2:515
msgid "Wait for all children, regardless of type (\"clone\" or \"non-clone\")."
msgstr ""
#. type: TP
-#: build/C/man2/wait.2:516
+#: build/C/man2/wait.2:515
#, no-wrap
msgid "B<__WNOTHREAD> (since Linux 2.4)"
msgstr ""
#. since patch-2.4.0-test8
#. type: Plain text
-#: build/C/man2/wait.2:522
+#: build/C/man2/wait.2:521
msgid ""
"Do not wait for children of other threads in the same thread group. This "
"was the default before Linux 2.4."
msgstr ""
+#. type: Plain text
+#: build/C/man2/wait.2:536
+msgid ""
+"According to POSIX.1-2008, an application calling B<waitid>() must ensure "
+"that I<infop> points to a I<siginfo_t> structure (i.e., that it is a "
+"non-NULL pointer). On Linux, if I<infop> is NULL, B<waitid>() succeeds, "
+"and returns the process ID of the waited-for child. Applications should "
+"avoid relying on this inconsistent, nonstandard, and unnecessary feature."
+msgstr ""
+
#. fork.2 refers to this example program.
#. type: Plain text
-#: build/C/man2/wait.2:539
+#: build/C/man2/wait.2:553
msgid ""
"The following program demonstrates the use of B<fork>(2) and B<waitpid>(). "
"The program creates a child process. If no command-line argument is "
msgstr ""
#. type: Plain text
-#: build/C/man2/wait.2:555
+#: build/C/man2/wait.2:569
#, no-wrap
msgid ""
"$B< ./a.out &>\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/wait.2:564
+#: build/C/man2/wait.2:578
#, no-wrap
msgid ""
"#include E<lt>sys/wait.hE<gt>\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/wait.2:570
+#: build/C/man2/wait.2:584
#, no-wrap
msgid ""
"int\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/wait.2:576
+#: build/C/man2/wait.2:590
#, no-wrap
msgid ""
" cpid = fork();\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/wait.2:582
+#: build/C/man2/wait.2:596
#, no-wrap
msgid ""
" if (cpid == 0) { /* Code executed by child */\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/wait.2:590
+#: build/C/man2/wait.2:604
#, no-wrap
msgid ""
" } else { /* Code executed by parent */\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/wait.2:604
+#: build/C/man2/wait.2:618
#, no-wrap
msgid ""
" if (WIFEXITED(status)) {\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/wait.2:617
+#: build/C/man2/wait.2:631
msgid ""
"B<_exit>(2), B<clone>(2), B<fork>(2), B<kill>(2), B<ptrace>(2), "
"B<sigaction>(2), B<signal>(2), B<wait4>(2), B<pthread_create>(3), "
msgstr ""
#. type: TH
-#: build/C/man2/wait4.2:34
+#: build/C/man2/wait4.2:33
#, no-wrap
msgid "WAIT4"
msgstr ""
+#. type: TH
+#: build/C/man2/wait4.2:33
+#, no-wrap
+msgid "2012-09-23"
+msgstr ""
+
#. type: Plain text
-#: build/C/man2/wait4.2:37
+#: build/C/man2/wait4.2:36
msgid "wait3, wait4 - wait for process to change state, BSD style"
msgstr ""
#. type: Plain text
-#: build/C/man2/wait4.2:43
+#: build/C/man2/wait4.2:42
#, no-wrap
msgid ""
"B<#include E<lt>sys/types.hE<gt>>\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/wait4.2:46
+#: build/C/man2/wait4.2:45
#, no-wrap
msgid ""
"B<pid_t wait3(int *>I<status>B<, int >I<options>B<,>\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/wait4.2:49
+#: build/C/man2/wait4.2:48
#, no-wrap
msgid ""
"B<pid_t wait4(pid_t >I<pid>B<, int *>I<status>B<, int >I<options>B<,>\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/wait4.2:58
+#: build/C/man2/wait4.2:57
msgid "B<wait3>():"
msgstr ""
#. type: Plain text
-#: build/C/man2/wait4.2:64
+#: build/C/man2/wait4.2:63
msgid "B<wait4>():"
msgstr ""
#. type: Plain text
-#: build/C/man2/wait4.2:66
+#: build/C/man2/wait4.2:65
msgid "_BSD_SOURCE"
msgstr ""
#. type: Plain text
-#: build/C/man2/wait4.2:78
+#: build/C/man2/wait4.2:73
+msgid ""
+"These functions are obsolete; use B<waitpid>(2) or B<waitid>(2) in new "
+"programs."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/wait4.2:83
msgid ""
"The B<wait3>() and B<wait4>() system calls are similar to B<waitpid>(2), "
"but additionally return resource usage information about the child in the "
msgstr ""
#. type: Plain text
-#: build/C/man2/wait4.2:84
+#: build/C/man2/wait4.2:89
msgid ""
"Other than the use of the I<rusage> argument, the following B<wait3>() "
"call:"
msgstr ""
#. type: Plain text
-#: build/C/man2/wait4.2:87
+#: build/C/man2/wait4.2:92
#, no-wrap
msgid " wait3(status, options, rusage);\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/wait4.2:90 build/C/man2/wait4.2:104
+#: build/C/man2/wait4.2:95 build/C/man2/wait4.2:109
msgid "is equivalent to:"
msgstr ""
#. type: Plain text
-#: build/C/man2/wait4.2:93
+#: build/C/man2/wait4.2:98
#, no-wrap
msgid " waitpid(-1, status, options);\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/wait4.2:98
+#: build/C/man2/wait4.2:103
msgid "Similarly, the following B<wait4>() call:"
msgstr ""
#. type: Plain text
-#: build/C/man2/wait4.2:101
+#: build/C/man2/wait4.2:106
#, no-wrap
msgid " wait4(pid, status, options, rusage);\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/wait4.2:107
+#: build/C/man2/wait4.2:112
#, no-wrap
msgid " waitpid(pid, status, options);\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/wait4.2:117
+#: build/C/man2/wait4.2:122
msgid ""
"In other words, B<wait3>() waits of any child, while B<wait4>() can be "
"used to select a specific child, or children, on which to wait. See "
msgstr ""
#. type: Plain text
-#: build/C/man2/wait4.2:127
+#: build/C/man2/wait4.2:132
msgid ""
"If I<rusage> is not NULL, the I<struct rusage> to which it points will be "
"filled with accounting information about the child. See B<getrusage>(2) "
msgstr ""
#. type: Plain text
-#: build/C/man2/wait4.2:130 build/C/man2/wait4.2:133
+#: build/C/man2/wait4.2:135 build/C/man2/wait4.2:138
msgid "As for B<waitpid>(2)."
msgstr ""
#. type: Plain text
-#: build/C/man2/wait4.2:135
+#: build/C/man2/wait4.2:140
msgid "4.3BSD."
msgstr ""
#. type: Plain text
#: build/C/man2/wait4.2:147
msgid ""
+"SUSv1 included a specification of B<wait3>(); SUSv2 included B<wait3>(), but "
+"marked it LEGACY; SUSv3 removed it."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/wait4.2:159
+msgid ""
"Including I<E<lt>sys/time.hE<gt>> is not required these days, but increases "
"portability. (Indeed, I<E<lt>sys/resource.hE<gt>> defines the I<rusage> "
"structure with fields of type I<struct timeval> defined in "
msgstr ""
#. type: Plain text
-#: build/C/man2/wait4.2:153
+#: build/C/man2/wait4.2:165
msgid ""
"On Linux, B<wait3>() is a library function implemented on top of the "
"B<wait4>() system call."
msgstr ""
#. type: Plain text
-#: build/C/man2/wait4.2:160
+#: build/C/man2/wait4.2:172
msgid ""
"B<fork>(2), B<getrusage>(2), B<sigaction>(2), B<signal>(2), B<wait>(2), "
"B<signal>(7)"