msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
-"POT-Creation-Date: 2014-06-08 01:30+0900\n"
+"POT-Creation-Date: 2015-02-04 23:33+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"
msgstr ""
#. type: TH
-#: 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/restart_syscall.2:33 build/C/man2/rt_sigqueueinfo.2:25 build/C/man2/s390_runtime_instr.2:25 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
+#: 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:54 build/C/man3/profil.3:28 build/C/man3/psignal.3:30 build/C/man3/raise.3:29 build/C/man2/restart_syscall.2:33 build/C/man2/rt_sigqueueinfo.2:25 build/C/man2/s390_runtime_instr.2:25 build/C/man2/sgetmask.2:26 build/C/man2/sigaction.2:49 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:30 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:33 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:22 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: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/restart_syscall.2:34 build/C/man2/rt_sigqueueinfo.2:26 build/C/man2/s390_runtime_instr.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/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
+#: 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:55 build/C/man3/profil.3:29 build/C/man3/psignal.3:31 build/C/man3/raise.3:30 build/C/man2/restart_syscall.2:34 build/C/man2/rt_sigqueueinfo.2:26 build/C/man2/s390_runtime_instr.2:26 build/C/man2/sgetmask.2:27 build/C/man2/sigaction.2:50 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:31 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:34 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:23 build/C/man2/tkill.2:30 build/C/man2/wait.2:50 build/C/man2/wait4.2:34
#, no-wrap
msgid "NAME"
msgstr ""
msgstr ""
#. type: SH
-#: 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/restart_syscall.2:36 build/C/man2/rt_sigqueueinfo.2:28 build/C/man2/s390_runtime_instr.2:28 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
+#: 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:57 build/C/man3/profil.3:31 build/C/man3/psignal.3:33 build/C/man3/raise.3:32 build/C/man2/restart_syscall.2:36 build/C/man2/rt_sigqueueinfo.2:28 build/C/man2/s390_runtime_instr.2:28 build/C/man2/sgetmask.2:29 build/C/man2/sigaction.2:52 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:33 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:36 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:26 build/C/man2/tkill.2:32 build/C/man2/wait.2:52 build/C/man2/wait4.2:36
#, no-wrap
msgid "SYNOPSIS"
msgstr ""
msgstr ""
#. type: SH
-#: 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:46 build/C/man3/psignal.3:56 build/C/man3/raise.3:38 build/C/man2/restart_syscall.2:41 build/C/man2/rt_sigqueueinfo.2:38 build/C/man2/s390_runtime_instr.2:34 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:83 build/C/man2/wait4.2:67
+#: 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:64 build/C/man3/profil.3:46 build/C/man3/psignal.3:56 build/C/man3/raise.3:38 build/C/man2/restart_syscall.2:41 build/C/man2/rt_sigqueueinfo.2:38 build/C/man2/s390_runtime_instr.2:34 build/C/man2/sgetmask.2:36 build/C/man2/sigaction.2:72 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:35 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:54 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:38 build/C/man2/tkill.2:41 build/C/man2/wait.2:83 build/C/man2/wait4.2:67
#, no-wrap
msgid "DESCRIPTION"
msgstr ""
msgstr ""
#. type: SH
-#: build/C/man3/bsd_signal.3:54 build/C/man2/eventfd.2:222 build/C/man2/getitimer.2:122 build/C/man2/kill.2:100 build/C/man2/killpg.2:89 build/C/man2/pause.2:42 build/C/man2/prctl.2:802 build/C/man3/profil.3:68 build/C/man3/psignal.3:89 build/C/man3/raise.3:61 build/C/man2/restart_syscall.2:84 build/C/man2/rt_sigqueueinfo.2:129 build/C/man2/s390_runtime_instr.2:54 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:355 build/C/man2/wait4.2:132
+#: build/C/man3/bsd_signal.3:54 build/C/man2/eventfd.2:222 build/C/man2/getitimer.2:129 build/C/man2/kill.2:100 build/C/man2/killpg.2:89 build/C/man2/pause.2:42 build/C/man2/prctl.2:892 build/C/man3/profil.3:68 build/C/man3/psignal.3:89 build/C/man3/raise.3:61 build/C/man2/restart_syscall.2:88 build/C/man2/rt_sigqueueinfo.2:129 build/C/man2/s390_runtime_instr.2:54 build/C/man2/sgetmask.2:59 build/C/man2/sigaction.2:728 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:65 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:169 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:294 build/C/man2/tkill.2:88 build/C/man2/wait.2:355 build/C/man2/wait4.2:132
#, no-wrap
msgid "RETURN VALUE"
msgstr ""
msgstr ""
#. type: SH
-#: build/C/man3/bsd_signal.3:60 build/C/man2/eventfd.2:229 build/C/man2/getitimer.2:127 build/C/man2/kill.2:105 build/C/man2/killpg.2:94 build/C/man2/pause.2:53 build/C/man2/prctl.2:822 build/C/man2/restart_syscall.2:88 build/C/man2/rt_sigqueueinfo.2:134 build/C/man2/s390_runtime_instr.2:65 build/C/man2/sgetmask.2:64 build/C/man2/sigaction.2:665 build/C/man2/sigaltstack.2:137 build/C/man3/siginterrupt.3:83 build/C/man2/signal.2:105 build/C/man2/signalfd.2:265 build/C/man2/sigpending.2:59 build/C/man2/sigprocmask.2:99 build/C/man3/sigqueue.3:91 build/C/man3/sigset.3:154 build/C/man3/sigsetops.3:126 build/C/man2/sigsuspend.2:76 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:384 build/C/man2/wait4.2:135
+#: build/C/man3/bsd_signal.3:60 build/C/man2/eventfd.2:229 build/C/man2/getitimer.2:134 build/C/man2/kill.2:105 build/C/man2/killpg.2:94 build/C/man2/pause.2:53 build/C/man2/prctl.2:912 build/C/man2/restart_syscall.2:92 build/C/man2/rt_sigqueueinfo.2:134 build/C/man2/s390_runtime_instr.2:65 build/C/man2/sgetmask.2:64 build/C/man2/sigaction.2:733 build/C/man2/sigaltstack.2:137 build/C/man3/siginterrupt.3:83 build/C/man2/signal.2:105 build/C/man2/signalfd.2:265 build/C/man2/sigpending.2:59 build/C/man2/sigprocmask.2:99 build/C/man3/sigqueue.3:91 build/C/man3/sigset.3:154 build/C/man3/sigsetops.3:127 build/C/man2/sigsuspend.2:76 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:177 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:309 build/C/man2/tkill.2:92 build/C/man2/wait.2:385 build/C/man2/wait4.2:135
#, no-wrap
msgid "ERRORS"
msgstr ""
msgstr ""
#. type: SH
-#: build/C/man3/bsd_signal.3:63 build/C/man3/raise.3:64 build/C/man3/sigpause.3:56 build/C/man3/sigqueue.3:114 build/C/man3/sigsetops.3:131 build/C/man3/sigvec.3:221 build/C/man3/sigwait.3:80 build/C/man3/sysv_signal.3:60
+#: build/C/man3/bsd_signal.3:63 build/C/man3/raise.3:64 build/C/man3/siginterrupt.3:87 build/C/man3/sigpause.3:56 build/C/man3/sigqueue.3:114 build/C/man3/sigsetops.3:132 build/C/man3/sigvec.3:221 build/C/man3/sigwait.3:80 build/C/man3/sysv_signal.3:60
#, no-wrap
msgid "ATTRIBUTES"
msgstr ""
#. type: SS
-#: build/C/man3/bsd_signal.3:64 build/C/man3/raise.3:65 build/C/man3/sigpause.3:57 build/C/man3/sigqueue.3:115 build/C/man3/sigsetops.3:132 build/C/man3/sigvec.3:222 build/C/man3/sigwait.3:81 build/C/man3/sysv_signal.3:61
+#: build/C/man3/bsd_signal.3:64 build/C/man3/raise.3:65 build/C/man3/siginterrupt.3:88 build/C/man3/sigpause.3:57 build/C/man3/sigqueue.3:115 build/C/man3/sigsetops.3:133 build/C/man3/sigvec.3:222 build/C/man3/sigwait.3:81 build/C/man3/sysv_signal.3:61
#, no-wrap
msgid "Multithreading (see pthreads(7))"
msgstr ""
msgstr ""
#. type: SH
-#: build/C/man3/bsd_signal.3:68 build/C/man2/eventfd.2:266 build/C/man2/getitimer.2:148 build/C/man3/gsignal.3:95 build/C/man2/kill.2:121 build/C/man2/killpg.2:111 build/C/man2/pause.2:57 build/C/man2/prctl.2:1068 build/C/man3/profil.3:70 build/C/man3/psignal.3:99 build/C/man3/raise.3:69 build/C/man2/restart_syscall.2:96 build/C/man2/rt_sigqueueinfo.2:176 build/C/man2/s390_runtime_instr.2:81 build/C/man2/sgetmask.2:66 build/C/man2/sigaction.2:677 build/C/man2/sigaltstack.2:158 build/C/man7/sigevent.7:130 build/C/man3/siginterrupt.3:87 build/C/man2/signal.2:110 build/C/man7/signal.7:838 build/C/man2/signalfd.2:307 build/C/man3/sigpause.3:61 build/C/man2/sigpending.2:64 build/C/man2/sigprocmask.2:112 build/C/man3/sigqueue.3:119 build/C/man2/sigreturn.2:60 build/C/man3/sigset.3:173 build/C/man3/sigsetops.3:144 build/C/man2/sigsuspend.2:84 build/C/man3/sigvec.3:234 build/C/man3/sigwait.3:85 build/C/man2/sigwaitinfo.2:133 build/C/man3/sysv_signal.3:65 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:422 build/C/man2/wait4.2:138
+#: build/C/man3/bsd_signal.3:68 build/C/man2/eventfd.2:266 build/C/man2/getitimer.2:155 build/C/man3/gsignal.3:95 build/C/man2/kill.2:121 build/C/man2/killpg.2:111 build/C/man2/pause.2:57 build/C/man2/prctl.2:1190 build/C/man3/profil.3:70 build/C/man3/psignal.3:99 build/C/man3/raise.3:69 build/C/man2/restart_syscall.2:100 build/C/man2/rt_sigqueueinfo.2:176 build/C/man2/s390_runtime_instr.2:81 build/C/man2/sgetmask.2:73 build/C/man2/sigaction.2:745 build/C/man2/sigaltstack.2:158 build/C/man7/sigevent.7:130 build/C/man3/siginterrupt.3:93 build/C/man2/signal.2:110 build/C/man7/signal.7:878 build/C/man2/signalfd.2:307 build/C/man3/sigpause.3:61 build/C/man2/sigpending.2:64 build/C/man2/sigprocmask.2:112 build/C/man3/sigqueue.3:119 build/C/man2/sigreturn.2:68 build/C/man3/sigset.3:173 build/C/man3/sigsetops.3:145 build/C/man2/sigsuspend.2:84 build/C/man3/sigvec.3:241 build/C/man3/sigwait.3:85 build/C/man2/sigwaitinfo.2:133 build/C/man3/sysv_signal.3:65 build/C/man2/timer_create.2:195 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:378 build/C/man2/tkill.2:109 build/C/man2/wait.2:423 build/C/man2/wait4.2:138
#, no-wrap
msgid "CONFORMING TO"
msgstr ""
msgstr ""
#. type: SH
-#: build/C/man3/bsd_signal.3:75 build/C/man2/eventfd.2:271 build/C/man2/getitimer.2:158 build/C/man2/kill.2:123 build/C/man2/killpg.2:115 build/C/man3/raise.3:71 build/C/man2/restart_syscall.2:98 build/C/man2/rt_sigqueueinfo.2:178 build/C/man2/s390_runtime_instr.2:84 build/C/man2/sgetmask.2:68 build/C/man2/sigaction.2:680 build/C/man2/sigaltstack.2:160 build/C/man2/signal.2:112 build/C/man2/signalfd.2:312 build/C/man3/sigpause.3:65 build/C/man2/sigpending.2:66 build/C/man2/sigprocmask.2:114 build/C/man3/sigqueue.3:121 build/C/man2/sigreturn.2:64 build/C/man3/sigset.3:190 build/C/man3/sigsetops.3:146 build/C/man2/sigsuspend.2:86 build/C/man3/sigvec.3:240 build/C/man3/sigwait.3:87 build/C/man2/sigwaitinfo.2:135 build/C/man3/sysv_signal.3:67 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:424 build/C/man2/wait4.2:147
+#: build/C/man3/bsd_signal.3:75 build/C/man2/eventfd.2:271 build/C/man2/getitimer.2:165 build/C/man2/kill.2:123 build/C/man2/killpg.2:115 build/C/man3/raise.3:71 build/C/man2/restart_syscall.2:102 build/C/man2/rt_sigqueueinfo.2:178 build/C/man2/s390_runtime_instr.2:84 build/C/man2/sgetmask.2:75 build/C/man2/sigaction.2:748 build/C/man2/sigaltstack.2:160 build/C/man2/signal.2:112 build/C/man2/signalfd.2:312 build/C/man3/sigpause.3:65 build/C/man2/sigpending.2:66 build/C/man2/sigprocmask.2:114 build/C/man3/sigqueue.3:121 build/C/man2/sigreturn.2:74 build/C/man3/sigset.3:190 build/C/man3/sigsetops.3:147 build/C/man2/sigsuspend.2:86 build/C/man3/sigvec.3:247 build/C/man3/sigwait.3:87 build/C/man2/sigwaitinfo.2:135 build/C/man3/sysv_signal.3:67 build/C/man2/timer_create.2:197 build/C/man2/timer_getoverrun.2:99 build/C/man2/tkill.2:115 build/C/man2/wait.2:425 build/C/man2/wait4.2:147
#, no-wrap
msgid "NOTES"
msgstr ""
msgstr ""
#. type: SH
-#: build/C/man3/bsd_signal.3:99 build/C/man2/eventfd.2:417 build/C/man2/getitimer.2:239 build/C/man3/gsignal.3:103 build/C/man2/kill.2:171 build/C/man2/killpg.2:134 build/C/man2/pause.2:59 build/C/man2/prctl.2:1082 build/C/man3/profil.3:81 build/C/man3/psignal.3:113 build/C/man3/raise.3:82 build/C/man2/restart_syscall.2:123 build/C/man2/rt_sigqueueinfo.2:188 build/C/man2/s390_runtime_instr.2:88 build/C/man2/sgetmask.2:82 build/C/man2/sigaction.2:793 build/C/man2/sigaltstack.2:234 build/C/man7/sigevent.7:132 build/C/man3/siginterrupt.3:96 build/C/man2/signal.2:278 build/C/man7/signal.7:850 build/C/man2/signalfd.2:433 build/C/man3/sigpause.3:111 build/C/man2/sigpending.2:91 build/C/man2/sigprocmask.2:144 build/C/man3/sigqueue.3:154 build/C/man2/sigreturn.2:74 build/C/man3/sigset.3:266 build/C/man3/sigsetops.3:185 build/C/man2/sigsuspend.2:108 build/C/man3/sigvec.3:265 build/C/man3/sigwait.3:94 build/C/man2/sigwaitinfo.2:187 build/C/man3/sysv_signal.3:92 build/C/man2/timer_create.2:407 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:634 build/C/man2/wait4.2:165
+#: build/C/man3/bsd_signal.3:99 build/C/man2/eventfd.2:417 build/C/man2/getitimer.2:246 build/C/man3/gsignal.3:103 build/C/man2/kill.2:171 build/C/man2/killpg.2:134 build/C/man2/pause.2:59 build/C/man2/prctl.2:1204 build/C/man3/profil.3:81 build/C/man3/psignal.3:113 build/C/man3/raise.3:82 build/C/man2/restart_syscall.2:135 build/C/man2/rt_sigqueueinfo.2:188 build/C/man2/s390_runtime_instr.2:88 build/C/man2/sgetmask.2:89 build/C/man2/sigaction.2:861 build/C/man2/sigaltstack.2:234 build/C/man7/sigevent.7:132 build/C/man3/siginterrupt.3:102 build/C/man2/signal.2:278 build/C/man7/signal.7:890 build/C/man2/signalfd.2:433 build/C/man3/sigpause.3:111 build/C/man2/sigpending.2:91 build/C/man2/sigprocmask.2:144 build/C/man3/sigqueue.3:154 build/C/man2/sigreturn.2:123 build/C/man3/sigset.3:266 build/C/man3/sigsetops.3:186 build/C/man2/sigsuspend.2:108 build/C/man3/sigvec.3:272 build/C/man3/sigwait.3:94 build/C/man2/sigwaitinfo.2:201 build/C/man3/sysv_signal.3:92 build/C/man2/timer_create.2:410 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:548 build/C/man2/tkill.2:124 build/C/man2/wait.2:635 build/C/man2/wait4.2:165
#, no-wrap
msgid "SEE ALSO"
msgstr ""
msgstr ""
#. type: SH
-#: build/C/man3/bsd_signal.3:104 build/C/man2/eventfd.2:428 build/C/man2/getitimer.2:246 build/C/man3/gsignal.3:107 build/C/man2/kill.2:181 build/C/man2/killpg.2:140 build/C/man2/pause.2:64 build/C/man2/prctl.2:1085 build/C/man3/profil.3:86 build/C/man3/psignal.3:118 build/C/man3/raise.3:89 build/C/man2/restart_syscall.2:131 build/C/man2/rt_sigqueueinfo.2:196 build/C/man2/s390_runtime_instr.2:91 build/C/man2/sgetmask.2:85 build/C/man2/sigaction.2:813 build/C/man2/sigaltstack.2:241 build/C/man7/sigevent.7:142 build/C/man3/siginterrupt.3:98 build/C/man2/signal.2:297 build/C/man7/signal.7:884 build/C/man2/signalfd.2:446 build/C/man3/sigpause.3:119 build/C/man2/sigpending.2:99 build/C/man2/sigprocmask.2:155 build/C/man3/sigqueue.3:162 build/C/man2/sigreturn.2:80 build/C/man3/sigset.3:276 build/C/man3/sigsetops.3:190 build/C/man2/sigsuspend.2:118 build/C/man3/sigvec.3:275 build/C/man3/sigwait.3:102 build/C/man2/sigwaitinfo.2:199 build/C/man3/sysv_signal.3:97 build/C/man2/timer_create.2:422 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:646 build/C/man2/wait4.2:172
+#: build/C/man3/bsd_signal.3:104 build/C/man2/eventfd.2:428 build/C/man2/getitimer.2:253 build/C/man3/gsignal.3:107 build/C/man2/kill.2:181 build/C/man2/killpg.2:140 build/C/man2/pause.2:64 build/C/man2/prctl.2:1207 build/C/man3/profil.3:87 build/C/man3/psignal.3:118 build/C/man3/raise.3:89 build/C/man2/restart_syscall.2:144 build/C/man2/rt_sigqueueinfo.2:196 build/C/man2/s390_runtime_instr.2:91 build/C/man2/sgetmask.2:92 build/C/man2/sigaction.2:883 build/C/man2/sigaltstack.2:241 build/C/man7/sigevent.7:142 build/C/man3/siginterrupt.3:104 build/C/man2/signal.2:297 build/C/man7/signal.7:925 build/C/man2/signalfd.2:446 build/C/man3/sigpause.3:119 build/C/man2/sigpending.2:99 build/C/man2/sigprocmask.2:155 build/C/man3/sigqueue.3:162 build/C/man2/sigreturn.2:130 build/C/man3/sigset.3:276 build/C/man3/sigsetops.3:191 build/C/man2/sigsuspend.2:118 build/C/man3/sigvec.3:282 build/C/man3/sigwait.3:102 build/C/man2/sigwaitinfo.2:213 build/C/man3/sysv_signal.3:97 build/C/man2/timer_create.2:425 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:560 build/C/man2/tkill.2:129 build/C/man2/wait.2:647 build/C/man2/wait4.2:172
#, no-wrap
msgid "COLOPHON"
msgstr ""
#. type: Plain text
-#: build/C/man3/bsd_signal.3:112 build/C/man2/eventfd.2:436 build/C/man2/getitimer.2:254 build/C/man3/gsignal.3:115 build/C/man2/kill.2:189 build/C/man2/killpg.2:148 build/C/man2/pause.2:72 build/C/man2/prctl.2:1093 build/C/man3/profil.3:94 build/C/man3/psignal.3:126 build/C/man3/raise.3:97 build/C/man2/restart_syscall.2:139 build/C/man2/rt_sigqueueinfo.2:204 build/C/man2/s390_runtime_instr.2:99 build/C/man2/sgetmask.2:93 build/C/man2/sigaction.2:821 build/C/man2/sigaltstack.2:249 build/C/man7/sigevent.7:150 build/C/man3/siginterrupt.3:106 build/C/man2/signal.2:305 build/C/man7/signal.7:892 build/C/man2/signalfd.2:454 build/C/man3/sigpause.3:127 build/C/man2/sigpending.2:107 build/C/man2/sigprocmask.2:163 build/C/man3/sigqueue.3:170 build/C/man2/sigreturn.2:88 build/C/man3/sigset.3:284 build/C/man3/sigsetops.3:198 build/C/man2/sigsuspend.2:126 build/C/man3/sigvec.3:283 build/C/man3/sigwait.3:110 build/C/man2/sigwaitinfo.2:207 build/C/man3/sysv_signal.3:105 build/C/man2/timer_create.2:430 build/C/man2/timer_delete.2:83 build/C/man2/timer_getoverrun.2:149 build/C/man2/timer_settime.2:224 build/C/man2/timerfd_create.2:561 build/C/man2/tkill.2:144 build/C/man2/wait.2:654 build/C/man2/wait4.2:180
+#: build/C/man3/bsd_signal.3:112 build/C/man2/eventfd.2:436 build/C/man2/getitimer.2:261 build/C/man3/gsignal.3:115 build/C/man2/kill.2:189 build/C/man2/killpg.2:148 build/C/man2/pause.2:72 build/C/man2/prctl.2:1215 build/C/man3/profil.3:95 build/C/man3/psignal.3:126 build/C/man3/raise.3:97 build/C/man2/restart_syscall.2:152 build/C/man2/rt_sigqueueinfo.2:204 build/C/man2/s390_runtime_instr.2:99 build/C/man2/sgetmask.2:100 build/C/man2/sigaction.2:891 build/C/man2/sigaltstack.2:249 build/C/man7/sigevent.7:150 build/C/man3/siginterrupt.3:112 build/C/man2/signal.2:305 build/C/man7/signal.7:933 build/C/man2/signalfd.2:454 build/C/man3/sigpause.3:127 build/C/man2/sigpending.2:107 build/C/man2/sigprocmask.2:163 build/C/man3/sigqueue.3:170 build/C/man2/sigreturn.2:138 build/C/man3/sigset.3:284 build/C/man3/sigsetops.3:199 build/C/man2/sigsuspend.2:126 build/C/man3/sigvec.3:290 build/C/man3/sigwait.3:110 build/C/man2/sigwaitinfo.2:221 build/C/man3/sysv_signal.3:105 build/C/man2/timer_create.2:433 build/C/man2/timer_delete.2:83 build/C/man2/timer_getoverrun.2:149 build/C/man2/timer_settime.2:224 build/C/man2/timerfd_create.2:568 build/C/man2/tkill.2:137 build/C/man2/wait.2:655 build/C/man2/wait4.2:180
msgid ""
-"This page is part of release 3.68 of the Linux I<man-pages> project. A "
+"This page is part of release 3.79 of the Linux I<man-pages> project. A "
"description of the project, information about reporting bugs, and the latest "
"version of this page, can be found at "
"\\%http://www.kernel.org/doc/man-pages/."
msgstr ""
#. type: TH
-#: build/C/man2/eventfd.2:22
+#: build/C/man2/eventfd.2:22 build/C/man2/getitimer.2:12 build/C/man3/profil.3:28 build/C/man2/signalfd.2:20
#, no-wrap
-msgid "2010-08-30"
+msgid "2014-07-08"
msgstr ""
#. type: TH
-#: 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/restart_syscall.2:33 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
+#: 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:54 build/C/man3/profil.3:28 build/C/man2/restart_syscall.2:33 build/C/man2/rt_sigqueueinfo.2:25 build/C/man2/sgetmask.2:26 build/C/man2/sigaction.2:49 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:30 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:33 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:22 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:44
msgid ""
-"The following values may be bitwise ORed in I<flags> to change the behaviour "
+"The following values may be bitwise ORed in I<flags> to change the behavior "
"of B<eventfd>():"
msgstr ""
msgstr ""
#. type: Plain text
-#: build/C/man2/eventfd.2:54 build/C/man2/signalfd.2:95 build/C/man2/timerfd_create.2:103
+#: build/C/man2/eventfd.2:54 build/C/man2/signalfd.2:95 build/C/man2/timerfd_create.2:110
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: Plain text
-#: build/C/man2/eventfd.2:62 build/C/man2/signalfd.2:85 build/C/man2/timerfd_create.2:93
+#: build/C/man2/eventfd.2:62 build/C/man2/signalfd.2:85 build/C/man2/timerfd_create.2:100
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:76 build/C/man2/signalfd.2:102 build/C/man2/timerfd_create.2:211
+#: build/C/man2/eventfd.2:76 build/C/man2/signalfd.2:102 build/C/man2/timerfd_create.2:218
#, no-wrap
msgid "B<read>(2)"
msgstr ""
msgstr ""
#. type: IP
-#: 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:865 build/C/man2/prctl.2:870 build/C/man2/prctl.2:875 build/C/man2/prctl.2:885 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:224 build/C/man2/signal.2:228 build/C/man2/signal.2:267 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
+#: 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:978 build/C/man2/prctl.2:983 build/C/man2/prctl.2:988 build/C/man2/prctl.2:998 build/C/man3/psignal.3:105 build/C/man3/psignal.3:109 build/C/man2/sigaction.2:318 build/C/man2/sigaction.2:333 build/C/man2/sigaction.2:349 build/C/man2/sigaction.2:364 build/C/man2/sigaction.2:411 build/C/man2/sigaction.2:458 build/C/man2/sigaction.2:472 build/C/man2/signal.2:68 build/C/man2/signal.2:73 build/C/man2/signal.2:80 build/C/man2/signal.2:224 build/C/man2/signal.2:228 build/C/man2/signal.2:244 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:672 build/C/man7/signal.7:676 build/C/man7/signal.7:683 build/C/man7/signal.7:701 build/C/man7/signal.7:711 build/C/man7/signal.7:718 build/C/man7/signal.7:723 build/C/man7/signal.7:725 build/C/man7/signal.7:729 build/C/man7/signal.7:748 build/C/man7/signal.7:762 build/C/man7/signal.7:773 build/C/man7/signal.7:780 build/C/man7/signal.7:789 build/C/man7/signal.7:797 build/C/man7/signal.7:803 build/C/man7/signal.7:823 build/C/man7/signal.7:837 build/C/man7/signal.7:848 build/C/man7/signal.7:851 build/C/man7/signal.7:854 build/C/man7/signal.7:857 build/C/man7/signal.7:864 build/C/man7/signal.7:870 build/C/man7/signal.7:874 build/C/man3/sigwait.3:62 build/C/man3/sigwait.3:67 build/C/man2/timer_create.2:218 build/C/man2/timer_create.2:221 build/C/man2/timer_create.2:224 build/C/man2/timer_create.2:228 build/C/man2/timer_create.2:231 build/C/man2/timer_create.2:246 build/C/man2/timer_create.2:250
#, no-wrap
msgid "*"
msgstr ""
msgstr ""
#. type: TP
-#: build/C/man2/eventfd.2:148 build/C/man2/signalfd.2:140 build/C/man2/timerfd_create.2:244
+#: build/C/man2/eventfd.2:148 build/C/man2/signalfd.2:140 build/C/man2/timerfd_create.2:251
#, no-wrap
msgid "B<poll>(2), B<select>(2) (and similar)"
msgstr ""
msgstr ""
#. type: TP
-#: build/C/man2/eventfd.2:205 build/C/man2/signalfd.2:160 build/C/man2/timerfd_create.2:262
+#: build/C/man2/eventfd.2:205 build/C/man2/signalfd.2:160 build/C/man2/timerfd_create.2:269
#, no-wrap
msgid "B<close>(2)"
msgstr ""
msgstr ""
#. type: TP
-#: build/C/man2/eventfd.2:230 build/C/man2/getitimer.2:135 build/C/man2/kill.2:106 build/C/man2/killpg.2:95 build/C/man2/prctl.2:827 build/C/man2/prctl.2:832 build/C/man2/prctl.2:844 build/C/man2/prctl.2:849 build/C/man2/prctl.2:858 build/C/man2/prctl.2:898 build/C/man2/prctl.2:908 build/C/man2/prctl.2:916 build/C/man2/prctl.2:927 build/C/man2/prctl.2:936 build/C/man2/prctl.2:950 build/C/man2/prctl.2:962 build/C/man2/prctl.2:973 build/C/man2/rt_sigqueueinfo.2:141 build/C/man2/s390_runtime_instr.2:66 build/C/man2/sigaction.2:670 build/C/man2/sigaltstack.2:142 build/C/man3/siginterrupt.3:84 build/C/man2/signal.2:106 build/C/man2/signalfd.2:271 build/C/man2/signalfd.2:279 build/C/man2/sigprocmask.2:107 build/C/man3/sigqueue.3:98 build/C/man3/sigsetops.3:127 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:417
+#: build/C/man2/eventfd.2:230 build/C/man2/getitimer.2:142 build/C/man2/kill.2:106 build/C/man2/killpg.2:95 build/C/man2/prctl.2:930 build/C/man2/prctl.2:935 build/C/man2/prctl.2:947 build/C/man2/prctl.2:952 build/C/man2/prctl.2:961 build/C/man2/prctl.2:971 build/C/man2/prctl.2:1011 build/C/man2/prctl.2:1021 build/C/man2/prctl.2:1029 build/C/man2/prctl.2:1040 build/C/man2/prctl.2:1049 build/C/man2/prctl.2:1063 build/C/man2/prctl.2:1075 build/C/man2/prctl.2:1086 build/C/man2/rt_sigqueueinfo.2:141 build/C/man2/s390_runtime_instr.2:66 build/C/man2/sigaction.2:738 build/C/man2/sigaltstack.2:142 build/C/man3/siginterrupt.3:84 build/C/man2/signal.2:106 build/C/man2/signalfd.2:271 build/C/man2/signalfd.2:279 build/C/man2/sigprocmask.2:107 build/C/man3/sigqueue.3:98 build/C/man3/sigsetops.3:128 build/C/man3/sigwait.3:75 build/C/man2/sigwaitinfo.2:129 build/C/man2/timer_create.2:181 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:312 build/C/man2/timerfd_create.2:320 build/C/man2/timerfd_create.2:356 build/C/man2/timerfd_create.2:363 build/C/man2/timerfd_create.2:369 build/C/man2/tkill.2:93 build/C/man2/wait.2:418
#, no-wrap
msgid "B<EINVAL>"
msgstr ""
msgstr ""
#. type: TP
-#: build/C/man2/eventfd.2:234 build/C/man2/signalfd.2:286 build/C/man2/timerfd_create.2:320
+#: build/C/man2/eventfd.2:234 build/C/man2/signalfd.2:286 build/C/man2/timerfd_create.2:327
#, no-wrap
msgid "B<EMFILE>"
msgstr ""
msgstr ""
#. type: TP
-#: build/C/man2/eventfd.2:237 build/C/man2/signalfd.2:289 build/C/man2/timerfd_create.2:323
+#: build/C/man2/eventfd.2:237 build/C/man2/signalfd.2:289 build/C/man2/timerfd_create.2:330
#, no-wrap
msgid "B<ENFILE>"
msgstr ""
#. type: Plain text
-#: build/C/man2/eventfd.2:241 build/C/man2/signalfd.2:293 build/C/man2/timerfd_create.2:327
+#: build/C/man2/eventfd.2:241 build/C/man2/signalfd.2:293 build/C/man2/timerfd_create.2:334
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:293 build/C/man2/timerfd_create.2:327
+#: build/C/man2/eventfd.2:241 build/C/man2/signalfd.2:293 build/C/man2/timerfd_create.2:334
#, no-wrap
msgid "B<ENODEV>"
msgstr ""
#. type: Plain text
-#: build/C/man2/eventfd.2:249 build/C/man2/signalfd.2:296 build/C/man2/timerfd_create.2:330
+#: build/C/man2/eventfd.2:249 build/C/man2/signalfd.2:296 build/C/man2/timerfd_create.2:337
msgid "Could not mount (internal) anonymous inode device."
msgstr ""
#. type: TP
-#: build/C/man2/eventfd.2:249 build/C/man2/s390_runtime_instr.2:73 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
+#: build/C/man2/eventfd.2:249 build/C/man2/s390_runtime_instr.2:73 build/C/man2/sigaltstack.2:147 build/C/man2/signalfd.2:296 build/C/man2/timer_create.2:189 build/C/man2/timerfd_create.2:337
#, no-wrap
msgid "B<ENOMEM>"
msgstr ""
msgstr ""
#. type: SH
-#: build/C/man2/eventfd.2:253 build/C/man2/prctl.2:1063 build/C/man3/psignal.3:95 build/C/man2/restart_syscall.2:92 build/C/man2/rt_sigqueueinfo.2:169 build/C/man2/s390_runtime_instr.2:79 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
+#: build/C/man2/eventfd.2:253 build/C/man2/prctl.2:1185 build/C/man3/psignal.3:95 build/C/man2/restart_syscall.2:96 build/C/man2/rt_sigqueueinfo.2:169 build/C/man2/s390_runtime_instr.2:79 build/C/man2/sgetmask.2:66 build/C/man2/signalfd.2:299 build/C/man3/sigqueue.3:112 build/C/man3/sigvec.3:234 build/C/man2/timer_create.2:193 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:375 build/C/man2/tkill.2:104
#, no-wrap
msgid "VERSIONS"
msgstr ""
msgstr ""
#. type: SS
-#: build/C/man2/eventfd.2:302 build/C/man2/signalfd.2:336
+#: build/C/man2/eventfd.2:302 build/C/man2/signalfd.2:326 build/C/man2/sigwaitinfo.2:183 build/C/man2/timer_create.2:243 build/C/man2/wait.2:525
#, no-wrap
-msgid "Underlying Linux system calls"
+msgid "C library/kernel ABI differences"
msgstr ""
#. type: Plain text
msgstr ""
#. type: SH
-#: build/C/man2/eventfd.2:334 build/C/man2/sigaction.2:790 build/C/man2/sigaltstack.2:217 build/C/man2/signalfd.2:360 build/C/man3/sigwait.3:91 build/C/man2/timer_create.2:261 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:551
+#: build/C/man2/eventfd.2:334 build/C/man2/sigaction.2:858 build/C/man2/sigaltstack.2:217 build/C/man2/signalfd.2:360 build/C/man3/sigwait.3:91 build/C/man2/timer_create.2:264 build/C/man2/timer_getoverrun.2:128 build/C/man2/timer_settime.2:209 build/C/man2/timerfd_create.2:386 build/C/man2/wait.2:552
#, no-wrap
msgid "EXAMPLE"
msgstr ""
msgstr ""
#. type: SS
-#: build/C/man2/eventfd.2:359 build/C/man2/signalfd.2:383 build/C/man2/timer_create.2:292 build/C/man2/timerfd_create.2:407 build/C/man2/wait.2:586
+#: build/C/man2/eventfd.2:359 build/C/man2/signalfd.2:383 build/C/man2/timer_create.2:295 build/C/man2/timerfd_create.2:414 build/C/man2/wait.2:587
#, no-wrap
msgid "Program source"
msgstr ""
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:15
msgid "getitimer, setitimer - get or set value of an interval timer"
#: 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 "
-"sent to the process, and the timer (potentially) restarts."
+"decrementing in a distinct time domain. When a timer expires, a signal is "
+"sent to the process, and the timer is reset to the specified interval (if "
+"nonzero)."
msgstr ""
#. type: TP
#, no-wrap
msgid ""
"struct itimerval {\n"
-" struct timeval it_interval; /* next value */\n"
-" struct timeval it_value; /* current value */\n"
+" struct timeval it_interval; /* Interval for periodic timer */\n"
+" struct timeval it_value; /* Time until next expiration */\n"
"};\n"
msgstr ""
msgstr ""
#. type: Plain text
-#: build/C/man2/getitimer.2:86
+#: build/C/man2/getitimer.2:90
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 "
-"B<ITIMER_REAL>, B<ITIMER_VIRTUAL>, or B<ITIMER_PROF>). The element "
-"I<it_value> is set to the amount of time remaining on the timer, or zero if "
-"the timer is disabled. Similarly, I<it_interval> is set to the reset value."
+"with the current value (i.e., the amount of time remaining until the next "
+"expiration) of the timer specified by I<which> (one of B<ITIMER_REAL>, "
+"B<ITIMER_VIRTUAL>, or B<ITIMER_PROF>). The subfields of the field "
+"I<it_value> are set to the amount of time remaining on the timer, or zero if "
+"the timer is disabled. The I<it_interval> field is set to the timer "
+"interval (period); a value of zero returned in (both subfields of) this "
+"field indicates that this is a single-shot timer."
msgstr ""
#. type: Plain text
-#: build/C/man2/getitimer.2:94
+#: build/C/man2/getitimer.2:101
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 "
-"stored there."
+"I<new_value>. If I<old_value> is non-NULL, the old value of the timer "
+"(i.e., the same information as returned by B<getitimer>()) is stored there."
msgstr ""
#. type: Plain text
-#: build/C/man2/getitimer.2:104
+#: build/C/man2/getitimer.2:111
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:110
+#: build/C/man2/getitimer.2:117
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:122
+#: build/C/man2/getitimer.2:129
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:127 build/C/man2/killpg.2:94 build/C/man2/tkill.2:99
+#: build/C/man2/getitimer.2:134 build/C/man2/killpg.2:94 build/C/man2/tkill.2:92
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:128 build/C/man2/prctl.2:823 build/C/man2/sigaction.2:666 build/C/man2/sigaltstack.2:138 build/C/man2/sigpending.2:60 build/C/man2/sigprocmask.2:100 build/C/man2/sigsuspend.2:77 build/C/man2/timer_settime.2:184 build/C/man2/timerfd_create.2:342
+#: build/C/man2/getitimer.2:135 build/C/man2/prctl.2:913 build/C/man2/prctl.2:917 build/C/man2/sigaction.2:734 build/C/man2/sigaltstack.2:138 build/C/man2/sigpending.2:60 build/C/man2/sigprocmask.2:100 build/C/man2/sigsuspend.2:77 build/C/man2/timer_settime.2:184 build/C/man2/timerfd_create.2:349
#, no-wrap
msgid "B<EFAULT>"
msgstr ""
#. type: Plain text
-#: build/C/man2/getitimer.2:135 build/C/man2/timerfd_create.2:349
+#: build/C/man2/getitimer.2:142 build/C/man2/timerfd_create.2:356
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:148
+#: build/C/man2/getitimer.2:155
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:158
+#: build/C/man2/getitimer.2:165
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:164
+#: build/C/man2/getitimer.2:171
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:174
+#: build/C/man2/getitimer.2:181
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
+#: build/C/man2/getitimer.2:183
msgid "The standards are silent on the meaning of the call:"
msgstr ""
#. type: Plain text
-#: build/C/man2/getitimer.2:178
+#: build/C/man2/getitimer.2:185
#, no-wrap
msgid " setitimer(which, NULL, &old_value);\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/getitimer.2:181
+#: build/C/man2/getitimer.2:188
msgid ""
"Many systems (Solaris, the BSDs, and perhaps others) treat this as "
"equivalent to:"
msgstr ""
#. type: Plain text
-#: build/C/man2/getitimer.2:183
+#: build/C/man2/getitimer.2:190
#, no-wrap
msgid " getitimer(which, &old_value);\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/getitimer.2:189
+#: build/C/man2/getitimer.2:196
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 "
msgstr ""
#. type: SH
-#: build/C/man2/getitimer.2:189 build/C/man2/kill.2:161 build/C/man3/profil.3:72 build/C/man3/psignal.3:101 build/C/man2/sigaction.2:781 build/C/man2/signalfd.2:352 build/C/man2/sigpending.2:85 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:536
+#: build/C/man2/getitimer.2:196 build/C/man2/kill.2:161 build/C/man3/profil.3:72 build/C/man3/psignal.3:101 build/C/man2/sigaction.2:849 build/C/man2/signalfd.2:352 build/C/man2/sigpending.2:85 build/C/man3/sigset.3:232 build/C/man2/timer_getoverrun.2:115 build/C/man2/timerfd_create.2:380 build/C/man2/wait.2:537
#, no-wrap
msgid "BUGS"
msgstr ""
#. type: Plain text
-#: build/C/man2/getitimer.2:198
+#: build/C/man2/getitimer.2:205
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:213
+#: build/C/man2/getitimer.2:220
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:220
+#: build/C/man2/getitimer.2:227
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:239
+#: build/C/man2/getitimer.2:246
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:246
+#: build/C/man2/getitimer.2:253
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:27 build/C/man3/profil.3:28
+#: build/C/man3/gsignal.3:27
#, no-wrap
msgid "2007-07-26"
msgstr ""
msgstr ""
#. type: Plain text
-#: 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
+#: 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:55 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 ""
msgstr ""
#. type: Plain text
-#: build/C/man3/gsignal.3:44 build/C/man2/kill.2:59 build/C/man2/killpg.2:53 build/C/man3/profil.3:42 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:69 build/C/man2/wait4.2:53
+#: build/C/man3/gsignal.3:44 build/C/man2/kill.2:59 build/C/man2/killpg.2:53 build/C/man3/profil.3:42 build/C/man3/psignal.3:46 build/C/man2/sigaction.2:63 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:50 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:69 build/C/man2/wait4.2:53
msgid "Feature Test Macro Requirements for glibc (see B<feature_test_macros>(7)):"
msgstr ""
msgstr ""
#. type: TP
-#: build/C/man2/kill.2:109 build/C/man2/killpg.2:99 build/C/man2/prctl.2:985 build/C/man2/prctl.2:997 build/C/man2/prctl.2:1007 build/C/man2/prctl.2:1015 build/C/man2/rt_sigqueueinfo.2:148 build/C/man2/sigaltstack.2:153 build/C/man3/sigqueue.3:102 build/C/man2/tkill.2:103
+#: build/C/man2/kill.2:109 build/C/man2/killpg.2:99 build/C/man2/prctl.2:1098 build/C/man2/prctl.2:1110 build/C/man2/prctl.2:1120 build/C/man2/prctl.2:1128 build/C/man2/rt_sigqueueinfo.2:148 build/C/man2/sigaltstack.2:153 build/C/man3/sigqueue.3:102 build/C/man2/tkill.2:96
#, no-wrap
msgid "B<EPERM>"
msgstr ""
msgstr ""
#. type: TP
-#: build/C/man2/kill.2:113 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
+#: build/C/man2/kill.2:113 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:101
#, no-wrap
msgid "B<ESRCH>"
msgstr ""
msgstr ""
#. type: Plain text
-#: build/C/man2/kill.2:123 build/C/man2/pause.2:59 build/C/man2/wait.2:424
+#: build/C/man2/kill.2:123 build/C/man2/pause.2:59 build/C/man2/wait.2:425
msgid "SVr4, 4.3BSD, POSIX.1-2001."
msgstr ""
msgstr ""
#. type: SS
-#: build/C/man2/kill.2:147 build/C/man3/sigpause.3:82 build/C/man2/wait.2:479
+#: build/C/man2/kill.2:147 build/C/man3/sigpause.3:82 build/C/man2/wait.2:480
#, no-wrap
msgid "Linux notes"
msgstr ""
msgstr ""
#. type: TP
-#: build/C/man2/pause.2:54 build/C/man2/sigsuspend.2:81 build/C/man2/sigwaitinfo.2:123 build/C/man2/wait.2:410
+#: build/C/man2/pause.2:54 build/C/man2/sigsuspend.2:81 build/C/man2/sigwaitinfo.2:123 build/C/man2/wait.2:411
#, no-wrap
msgid "B<EINTR>"
msgstr ""
msgstr ""
#. type: TH
-#: build/C/man2/prctl.2:52
+#: build/C/man2/prctl.2:54
#, no-wrap
msgid "PRCTL"
msgstr ""
#. type: TH
-#: build/C/man2/prctl.2:52 build/C/man3/sigsetops.3:31
+#: build/C/man2/prctl.2:54 build/C/man7/signal.7:46
#, no-wrap
-msgid "2014-04-14"
+msgid "2015-02-01"
msgstr ""
#. type: Plain text
-#: build/C/man2/prctl.2:55
+#: build/C/man2/prctl.2:57
msgid "prctl - operations on a process"
msgstr ""
#. type: Plain text
-#: build/C/man2/prctl.2:58
+#: build/C/man2/prctl.2:60
#, no-wrap
msgid "B<#include E<lt>sys/prctl.hE<gt>>\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/prctl.2:61
+#: build/C/man2/prctl.2:63
#, 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:68
+#: build/C/man2/prctl.2:70
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:68
+#: build/C/man2/prctl.2:70
#, no-wrap
msgid "B<PR_CAPBSET_READ> (since Linux 2.6.25)"
msgstr ""
#. type: Plain text
-#: build/C/man2/prctl.2:80
+#: build/C/man2/prctl.2:82
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:85
+#: build/C/man2/prctl.2:87
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:85
+#: build/C/man2/prctl.2:87
#, no-wrap
msgid "B<PR_CAPBSET_DROP> (since Linux 2.6.25)"
msgstr ""
#. type: Plain text
-#: build/C/man2/prctl.2:94
+#: build/C/man2/prctl.2:96
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:106
+#: build/C/man2/prctl.2:108
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:106
+#: build/C/man2/prctl.2:108
#, no-wrap
msgid "B<PR_SET_CHILD_SUBREAPER> (since Linux 3.4)"
msgstr ""
#. commit ebec18a6d3aa1e7d84aab16225e87fd25170ec2b
#. type: Plain text
-#: build/C/man2/prctl.2:131
+#: build/C/man2/prctl.2:133
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 "
msgstr ""
#. type: TP
-#: build/C/man2/prctl.2:131
+#: build/C/man2/prctl.2:133
#, no-wrap
msgid "B<PR_GET_CHILD_SUBREAPER> (since Linux 3.4)"
msgstr ""
#. type: Plain text
-#: build/C/man2/prctl.2:136
+#: build/C/man2/prctl.2:138
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
+#: build/C/man2/prctl.2:138
#, 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:162
+#: build/C/man2/prctl.2:164
msgid ""
"Set the state of the flag determining whether core dumps are produced for "
"the calling process upon delivery of a signal whose default behavior is to "
msgstr ""
#. type: TP
-#: build/C/man2/prctl.2:162
+#: build/C/man2/prctl.2:164
#, 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:169
+#: build/C/man2/prctl.2:171
msgid ""
"Return (as the function result) the current state of the calling process's "
"dumpable flag."
msgstr ""
#. type: TP
-#: build/C/man2/prctl.2:169
+#: build/C/man2/prctl.2:171
#, 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:179
+#: build/C/man2/prctl.2:181
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:179
+#: build/C/man2/prctl.2:181
#, no-wrap
msgid "B<PR_GET_ENDIAN> (since Linux 2.6.18, PowerPC only)"
msgstr ""
#. type: Plain text
-#: build/C/man2/prctl.2:184
+#: build/C/man2/prctl.2:186
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:184
+#: build/C/man2/prctl.2:186
#, 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:191
+#: build/C/man2/prctl.2:193
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:191
+#: build/C/man2/prctl.2:193
#, 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:196
+#: build/C/man2/prctl.2:198
msgid ""
"Return floating-point emulation control bits, in the location pointed to by "
"I<(int\\ *) arg2>."
msgstr ""
#. type: TP
-#: build/C/man2/prctl.2:196
+#: build/C/man2/prctl.2:198
#, 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:209
+#: build/C/man2/prctl.2:211
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:209
+#: build/C/man2/prctl.2:211
#, 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:214
+#: build/C/man2/prctl.2:216
msgid ""
"Return floating-point exception mode, in the location pointed to by I<(int\\ "
"*) arg2>."
msgstr ""
#. type: TP
-#: build/C/man2/prctl.2:214
+#: build/C/man2/prctl.2:216
#, no-wrap
msgid "B<PR_SET_KEEPCAPS> (since Linux 2.2.18)"
msgstr ""
#. type: Plain text
-#: build/C/man2/prctl.2:232
+#: build/C/man2/prctl.2:234
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:232
+#: build/C/man2/prctl.2:234
#, no-wrap
msgid "B<PR_GET_KEEPCAPS> (since Linux 2.2.18)"
msgstr ""
#. type: Plain text
-#: build/C/man2/prctl.2:236
+#: build/C/man2/prctl.2:238
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:236
+#: build/C/man2/prctl.2:238
#, 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:253
+#: build/C/man2/prctl.2:257
msgid ""
"Set the name of 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. This is the same attribute "
-"that can be set via B<pthread_setname_np>(3) and retrieved using "
-"B<pthread_getname_np>(3). The attribute is likewise accessible via "
-"I</proc/self/task/[tid]/comm>, where I<tid> is the name of the calling "
-"thread."
+"to by I<(char\\ *) arg2>. The name can be up to 16 bytes long, including "
+"the terminating null byte. (If the length of the string, including the "
+"terminating null byte, exceeds 16 bytes, the string is silently truncated.) "
+"This is the same attribute that can be set via B<pthread_setname_np>(3) and "
+"retrieved using B<pthread_getname_np>(3). The attribute is likewise "
+"accessible via I</proc/self/task/[tid]/comm>, where I<tid> is the name of "
+"the calling thread."
msgstr ""
#. type: TP
-#: build/C/man2/prctl.2:253
+#: build/C/man2/prctl.2:257
#, no-wrap
msgid "B<PR_GET_NAME> (since Linux 2.6.11)"
msgstr ""
#. type: Plain text
-#: build/C/man2/prctl.2:260
+#: build/C/man2/prctl.2:264
msgid ""
"Return the name of 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."
+"string will be null-terminated."
msgstr ""
#. type: TP
-#: build/C/man2/prctl.2:260
+#: build/C/man2/prctl.2:264
#, no-wrap
msgid "B<PR_SET_NO_NEW_PRIVS> (since Linux 3.5)"
msgstr ""
#. type: Plain text
-#: build/C/man2/prctl.2:283
+#: build/C/man2/prctl.2:287
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 "
msgstr ""
#. type: Plain text
-#: build/C/man2/prctl.2:286
+#: build/C/man2/prctl.2:290
msgid ""
"For more information, see the kernel source file "
"I<Documentation/prctl/no_new_privs.txt>."
msgstr ""
#. type: TP
-#: build/C/man2/prctl.2:286
+#: build/C/man2/prctl.2:290
#, no-wrap
msgid "B<PR_GET_NO_NEW_PRIVS> (since Linux 3.5)"
msgstr ""
#. type: Plain text
-#: build/C/man2/prctl.2:297
+#: build/C/man2/prctl.2:301
msgid ""
"Return (as the function result) the value of the I<no_new_privs> bit for the "
"current process. A value of 0 indicates the regular B<execve>(2) "
msgstr ""
#. type: TP
-#: build/C/man2/prctl.2:297
+#: build/C/man2/prctl.2:301
#, no-wrap
msgid "B<PR_SET_PDEATHSIG> (since Linux 2.1.57)"
msgstr ""
#. type: Plain text
-#: build/C/man2/prctl.2:310
+#: build/C/man2/prctl.2:314
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 "
msgstr ""
#. type: TP
-#: build/C/man2/prctl.2:310
+#: build/C/man2/prctl.2:314
#, no-wrap
msgid "B<PR_GET_PDEATHSIG> (since Linux 2.3.15)"
msgstr ""
#. type: Plain text
-#: build/C/man2/prctl.2:315
+#: build/C/man2/prctl.2:319
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:315
+#: build/C/man2/prctl.2:319
#, no-wrap
msgid "B<PR_SET_PTRACER> (since Linux 3.4)"
msgstr ""
#. commit 2d514487faf188938a4ee4fb3464eeecfbdcf8eb
#. commit bf06189e4d14641c0148bea16e9dd24943862215
#. type: Plain text
-#: build/C/man2/prctl.2:340
+#: build/C/man2/prctl.2:344
msgid ""
"This is meaningful only when the Yama LSM is enabled and in mode 1 "
"(\"restricted ptrace\", visible via I</proc/sys/kernel/yama/ptrace_scope>). "
msgstr ""
#. type: Plain text
-#: build/C/man2/prctl.2:343
+#: build/C/man2/prctl.2:347
msgid ""
"For further information, see the kernel source file "
"I<Documentation/security/Yama.txt>."
msgstr ""
#. type: TP
-#: build/C/man2/prctl.2:343
+#: build/C/man2/prctl.2:347
#, 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:354
+#: build/C/man2/prctl.2:358
msgid ""
"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>>.)"
+"available system calls. The more recent B<seccomp>(2) system call provides "
+"a superset of the functionality of B<PR_SET_SECCOMP>."
msgstr ""
#. type: Plain text
-#: build/C/man2/prctl.2:375
+#: build/C/man2/prctl.2:363
msgid ""
-"With I<arg2> set to B<SECCOMP_MODE_STRICT> the only system calls that the "
+"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:384
+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 "
msgstr ""
#. type: Plain text
-#: build/C/man2/prctl.2:390
+#: build/C/man2/prctl.2:399
msgid ""
-"With I<arg2> set to B<SECCOMP_MODE_FILTER> (since Linux 3.5) the system "
+"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 "
msgstr ""
#. type: Plain text
-#: build/C/man2/prctl.2:405
+#: build/C/man2/prctl.2:414
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 "
msgstr ""
#. type: Plain text
-#: build/C/man2/prctl.2:408
+#: build/C/man2/prctl.2:417
msgid ""
"For further information, see the kernel source file "
"I<Documentation/prctl/seccomp_filter.txt>."
msgstr ""
#. type: TP
-#: build/C/man2/prctl.2:408
+#: build/C/man2/prctl.2:417
#, no-wrap
msgid "B<PR_GET_SECCOMP> (since Linux 2.6.23)"
msgstr ""
#. type: Plain text
-#: build/C/man2/prctl.2:424
+#: build/C/man2/prctl.2:435
msgid ""
"Return (as the function result) 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 available only if the "
-"kernel is configured with B<CONFIG_SECCOMP> enabled."
+"seccomp filters, it returns 2; otherwise, the process is killed with a "
+"B<SIGKILL> signal. This operation is available only if the kernel is "
+"configured with B<CONFIG_SECCOMP> enabled."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/prctl.2:443
+msgid ""
+"Since Linux 3.8, the I<Seccomp> field of the I</proc/[pid]/status> file "
+"provides a method of obtaining the same information, without the risk that "
+"the process is killed; see B<proc>(5)."
msgstr ""
#. type: TP
-#: build/C/man2/prctl.2:424
+#: build/C/man2/prctl.2:443
#, no-wrap
msgid "B<PR_SET_SECUREBITS> (since Linux 2.6.26)"
msgstr ""
#. type: Plain text
-#: build/C/man2/prctl.2:430
+#: build/C/man2/prctl.2:449
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:430
+#: build/C/man2/prctl.2:449
#, no-wrap
msgid "B<PR_GET_SECUREBITS> (since Linux 2.6.26)"
msgstr ""
#. type: Plain text
-#: build/C/man2/prctl.2:436
+#: build/C/man2/prctl.2:455
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:436
+#: build/C/man2/prctl.2:455
#, no-wrap
msgid "B<PR_SET_THP_DISABLE> (since Linux 3.15)"
msgstr ""
#. commit a0715cc22601e8830ace98366c0c2bd8da52af52
#. type: Plain text
-#: build/C/man2/prctl.2:452
+#: build/C/man2/prctl.2:471
msgid ""
"Set the state of the \"THP disable\" flag for the calling thread. If "
"I<arg2> has a nonzero value, the flag is set, otherwise it is cleared. "
msgstr ""
#. type: TP
-#: build/C/man2/prctl.2:452
+#: build/C/man2/prctl.2:471
#, no-wrap
msgid "B<PR_GET_THP_DISABLE> (since Linux 3.15)"
msgstr ""
#. type: Plain text
-#: build/C/man2/prctl.2:457
+#: build/C/man2/prctl.2:476
msgid ""
"Return (via the function result) the current setting of the \"THP disable\" "
"flag for the calling thread: either 1, if the flag is set, or 0, if it is "
msgstr ""
#. type: TP
-#: build/C/man2/prctl.2:457
+#: build/C/man2/prctl.2:476
#, no-wrap
msgid "B<PR_GET_TID_ADDRESS> (since Linux 3.5)"
msgstr ""
#. commit 300f786b2683f8bb1ec0afb6e1851183a479c86d
#. type: Plain text
-#: build/C/man2/prctl.2:472
+#: build/C/man2/prctl.2:491
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 "
msgstr ""
#. type: TP
-#: build/C/man2/prctl.2:472
+#: build/C/man2/prctl.2:491
#, no-wrap
msgid "B<PR_SET_TIMERSLACK> (since Linux 2.6.28)"
msgstr ""
#. 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:491
+#: build/C/man2/prctl.2:510
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 "
#. List obtained by grepping for futex usage in glibc source
#. type: Plain text
-#: build/C/man2/prctl.2:511
+#: build/C/man2/prctl.2:530
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), "
msgstr ""
#. type: Plain text
-#: build/C/man2/prctl.2:515
+#: build/C/man2/prctl.2:534
msgid ""
"Timer slack is not applied to threads that are scheduled under a real-time "
"scheduling policy (see B<sched_setscheduler>(2))."
msgstr ""
#. type: Plain text
-#: build/C/man2/prctl.2:532
+#: build/C/man2/prctl.2:551
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 "
msgstr ""
#. type: TP
-#: build/C/man2/prctl.2:532
+#: build/C/man2/prctl.2:551
#, no-wrap
msgid "B<PR_GET_TIMERSLACK> (since Linux 2.6.28)"
msgstr ""
#. type: Plain text
-#: build/C/man2/prctl.2:536
+#: build/C/man2/prctl.2:555
msgid ""
"Return (as the function result) the current timer slack value of the "
"calling thread."
msgstr ""
#. type: TP
-#: build/C/man2/prctl.2:536
+#: build/C/man2/prctl.2:555
#, 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:553
+#: build/C/man2/prctl.2:572
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:553
+#: build/C/man2/prctl.2:572
#, no-wrap
msgid "B<PR_GET_TIMING> (since Linux 2.6.0-test4)"
msgstr ""
#. type: Plain text
-#: build/C/man2/prctl.2:557
+#: build/C/man2/prctl.2:576
msgid ""
"Return (as the function result) which process timing method is currently in "
"use."
msgstr ""
#. type: TP
-#: build/C/man2/prctl.2:557
+#: build/C/man2/prctl.2:576
#, no-wrap
msgid "B<PR_TASK_PERF_EVENTS_DISABLE> (since Linux 2.6.31)"
msgstr ""
#. type: Plain text
-#: build/C/man2/prctl.2:566
+#: build/C/man2/prctl.2:585
msgid ""
"Disable all performance counters attached to the calling process, regardless "
"of whether the counters were created by this process or another process. "
#. commit 1d1c7ddbfab358445a542715551301b7fc363e28
#. type: Plain text
-#: build/C/man2/prctl.2:572
+#: build/C/man2/prctl.2:591
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:572
+#: build/C/man2/prctl.2:591
#, no-wrap
msgid "B<PR_TASK_PERF_EVENTS_ENABLE> (since Linux 2.6.31)"
msgstr ""
#. type: Plain text
-#: build/C/man2/prctl.2:577
+#: build/C/man2/prctl.2:596
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:584
+#: build/C/man2/prctl.2:603
msgid "Originally called B<PR_TASK_PERF_COUNTERS_ENABLE>; renamed in Linux 2.6.32."
msgstr ""
#. type: TP
-#: build/C/man2/prctl.2:584
+#: build/C/man2/prctl.2:603
#, no-wrap
msgid "B<PR_SET_TSC> (since Linux 2.6.26, x86 only)"
msgstr ""
#. type: Plain text
-#: build/C/man2/prctl.2:597
+#: build/C/man2/prctl.2:616
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:597
+#: build/C/man2/prctl.2:616
#, no-wrap
msgid "B<PR_GET_TSC> (since Linux 2.6.26, x86 only)"
msgstr ""
#. type: Plain text
-#: build/C/man2/prctl.2:603
+#: build/C/man2/prctl.2:622
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:603
+#: build/C/man2/prctl.2:622
#, no-wrap
msgid "B<PR_SET_UNALIGN>"
msgstr ""
#. type: Plain text
-#: build/C/man2/prctl.2:613
+#: build/C/man2/prctl.2:632
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:613
+#: build/C/man2/prctl.2:632
#, no-wrap
msgid "B<PR_GET_UNALIGN>"
msgstr ""
#. type: Plain text
-#: build/C/man2/prctl.2:620
+#: build/C/man2/prctl.2:639
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:620
+#: build/C/man2/prctl.2:639
#, no-wrap
msgid "B<PR_MCE_KILL> (since Linux 2.6.32)"
msgstr ""
#. type: Plain text
-#: build/C/man2/prctl.2:660
+#: build/C/man2/prctl.2:679
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:660
+#: build/C/man2/prctl.2:679
#, no-wrap
msgid "B<PR_MCE_KILL_GET> (since Linux 2.6.32)"
msgstr ""
#. type: Plain text
-#: build/C/man2/prctl.2:666
+#: build/C/man2/prctl.2:685
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:666
+#: build/C/man2/prctl.2:685
#, no-wrap
msgid "B<PR_SET_MM> (since Linux 3.3)"
msgstr ""
#. commit 028ee4be34a09a6d48bdf30ab991ae933a7bc036
#. type: Plain text
-#: build/C/man2/prctl.2:687
+#: build/C/man2/prctl.2:706
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:688
+#: build/C/man2/prctl.2:707
#, no-wrap
msgid "B<PR_SET_MM_START_CODE>"
msgstr ""
#. type: Plain text
-#: build/C/man2/prctl.2:697
+#: build/C/man2/prctl.2:716
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:697
+#: build/C/man2/prctl.2:716
#, no-wrap
msgid "B<PR_SET_MM_END_CODE>"
msgstr ""
#. type: Plain text
-#: build/C/man2/prctl.2:702
+#: build/C/man2/prctl.2:721
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:702
+#: build/C/man2/prctl.2:721
#, no-wrap
msgid "B<PR_SET_MM_START_DATA>"
msgstr ""
#. type: Plain text
-#: build/C/man2/prctl.2:708
+#: build/C/man2/prctl.2:727
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:708
+#: build/C/man2/prctl.2:727
#, no-wrap
msgid "B<PR_SET_MM_END_DATA>"
msgstr ""
#. type: Plain text
-#: build/C/man2/prctl.2:714
+#: build/C/man2/prctl.2:733
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:714
+#: build/C/man2/prctl.2:733
#, no-wrap
msgid "B<PR_SET_MM_START_STACK>"
msgstr ""
#. type: Plain text
-#: build/C/man2/prctl.2:718
+#: build/C/man2/prctl.2:737
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:718
+#: build/C/man2/prctl.2:737
#, no-wrap
msgid "B<PR_SET_MM_START_BRK>"
msgstr ""
#. type: Plain text
-#: build/C/man2/prctl.2:730
+#: build/C/man2/prctl.2:749
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:730
+#: build/C/man2/prctl.2:749
#, no-wrap
msgid "B<PR_SET_MM_BRK>"
msgstr ""
#. type: Plain text
-#: build/C/man2/prctl.2:738
+#: build/C/man2/prctl.2:757
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."
#. commit fe8c7f5cbf91124987106faa3bdf0c8b955c4cf7
#. type: Plain text
-#: build/C/man2/prctl.2:741
+#: build/C/man2/prctl.2:760
msgid "The following options are available since Linux 3.5."
msgstr ""
#. type: TP
-#: build/C/man2/prctl.2:741
+#: build/C/man2/prctl.2:760
#, no-wrap
msgid "B<PR_SET_MM_ARG_START>"
msgstr ""
#. type: Plain text
-#: build/C/man2/prctl.2:744
+#: build/C/man2/prctl.2:763
msgid "Set the address above which the program command line is placed."
msgstr ""
#. type: TP
-#: build/C/man2/prctl.2:744
+#: build/C/man2/prctl.2:763
#, no-wrap
msgid "B<PR_SET_MM_ARG_END>"
msgstr ""
#. type: Plain text
-#: build/C/man2/prctl.2:747
+#: build/C/man2/prctl.2:766
msgid "Set the address below which the program command line is placed."
msgstr ""
#. type: TP
-#: build/C/man2/prctl.2:747
+#: build/C/man2/prctl.2:766
#, no-wrap
msgid "B<PR_SET_MM_ENV_START>"
msgstr ""
#. type: Plain text
-#: build/C/man2/prctl.2:750
+#: build/C/man2/prctl.2:769
msgid "Set the address above which the program environment is placed."
msgstr ""
#. type: TP
-#: build/C/man2/prctl.2:750
+#: build/C/man2/prctl.2:769
#, no-wrap
msgid "B<PR_SET_MM_ENV_END>"
msgstr ""
#. type: Plain text
-#: build/C/man2/prctl.2:753
+#: build/C/man2/prctl.2:772
msgid "Set the address below which the program environment is placed."
msgstr ""
#. type: Plain text
-#: build/C/man2/prctl.2:766
+#: build/C/man2/prctl.2:785
msgid ""
"The address passed with B<PR_SET_MM_ARG_START>, B<PR_SET_MM_ARG_END>, "
"B<PR_SET_MM_ENV_START>, and B<PR_SET_MM_ENV_END> should belong to a process "
msgstr ""
#. type: TP
-#: build/C/man2/prctl.2:766
+#: build/C/man2/prctl.2:785
#, no-wrap
msgid "B<PR_SET_MM_AUXV>"
msgstr ""
#. type: Plain text
-#: build/C/man2/prctl.2:775
+#: build/C/man2/prctl.2:794
msgid ""
"Set a new auxiliary vector. The I<arg3> argument should provide the address "
"of the vector. The I<arg4> is the size of the vector."
msgstr ""
#. type: TP
-#: build/C/man2/prctl.2:775
+#: build/C/man2/prctl.2:794
#, no-wrap
msgid "B<PR_SET_MM_EXE_FILE>"
msgstr ""
#. commit b32dfe377102ce668775f8b6b1461f7ad428f8b6
#. type: Plain text
-#: build/C/man2/prctl.2:787
+#: build/C/man2/prctl.2:806
msgid ""
"Supersede the I</proc/pid/exe> symbolic link with a new one pointing to a "
"new executable file identified by the file descriptor provided in I<arg3> "
msgstr ""
#. type: Plain text
-#: build/C/man2/prctl.2:794
+#: build/C/man2/prctl.2:813
msgid ""
"To change the symbolic link, one needs to unmap all existing executable "
"memory areas, including those created by the kernel itself (for example the "
msgstr ""
#. type: Plain text
-#: build/C/man2/prctl.2:800
+#: build/C/man2/prctl.2:819
msgid ""
"The second limitation is that such transitions can be done only once in a "
"process life time. Any further attempts will be rejected. This should help "
"processes running on a system."
msgstr ""
+#. type: TP
+#: build/C/man2/prctl.2:820
+#, no-wrap
+msgid "B<PR_MPX_ENABLE_MANAGEMENT>, B<PR_MPX_DISABLE_MANAGEMENT> (since Linux 3.19) "
+msgstr ""
+
+#. commit fe3d197f84319d3bce379a9c0dc17b1f48ad358c
+#. See also http://lwn.net/Articles/582712/
+#. See also https://gcc.gnu.org/wiki/Intel%20MPX%20support%20in%20the%20GCC%20compiler
+#. commit e9d1b4f3c60997fe197bf0243cb4a41a44387a88
+#. type: Plain text
+#: build/C/man2/prctl.2:835
+msgid ""
+"Enable or disable kernel management of Memory Protection eXtensions (MPX) "
+"bounds tables. The I<arg2>, I<arg3>, I<arg4>, and I<arg5> arguments must be "
+"zero."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/prctl.2:848
+msgid ""
+"MPX is a hardware-assisted mechanism for performing bounds checking on "
+"pointers. It consists of a set of registers storing bounds information and "
+"a set of special instruction prefixes that tell the CPU on which "
+"instructions it should do bounds enforcement. There is a limited number of "
+"these registers and when there are more pointers than registers, their "
+"contents must be \"spilled\" into a set of tables. These tables are called "
+"\"bounds tables\" and the MPX B<prctl>() operations control whether the "
+"kernel manages their allocation and freeing."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/prctl.2:858
+msgid ""
+"When management is enabled, the kernel will take over allocation and freeing "
+"of the bounds tables. It does this by trapping the #BR exceptions that "
+"result at first use of missing bounds tables and instead of delivering the "
+"exception to user space, it allocates the table and populates the bounds "
+"directory with the location of the new table. For freeing, the kernel "
+"checks to see if bounds tables are present for memory which is not "
+"allocated, and frees them if so."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/prctl.2:865
+msgid ""
+"Before enabling MPX management using B<PR_MPX_ENABLE_MANAGEMENT>, the "
+"application must first have allocated a user-space buffer for the bounds "
+"directory and placed the location of that directory in the I<bndcfgu> "
+"register."
+msgstr ""
+
#. type: Plain text
-#: build/C/man2/prctl.2:822
+#: build/C/man2/prctl.2:872
+msgid ""
+"These calls will fail if the CPU or kernel does not support MPX. Kernel "
+"support for MPX is enabled via the B<CONFIG_X86_INTEL_MPX> configuration "
+"option. You can check whether the CPU supports MPX by looking for the 'mpx' "
+"CPUID bit, like with the following command:"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/prctl.2:874
+msgid " cat /proc/cpuinfo | grep ' mpx '"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/prctl.2:877
+msgid ""
+"A thread may not switch in or out of long (64-bit) mode while MPX is "
+"enabled."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/prctl.2:879
+msgid "All threads in a process are affected by these calls."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/prctl.2:888
+msgid ""
+"The child of a B<fork>(2) inherits the state of MPX management. During "
+"B<execve>(2), MPX management is reset to a state as if "
+"B<PR_MPX_DISABLE_MANAGEMENT> had been called."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/prctl.2:892
+msgid ""
+"For further information on Intel MPX, see the kernel source file "
+"I<Documentation/x86/intel_mpx.txt>."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/prctl.2:912
msgid ""
"On success, B<PR_GET_DUMPABLE>, B<PR_GET_KEEPCAPS>, B<PR_GET_NO_NEW_PRIVS>, "
"B<PR_GET_THP_DISABLE>, B<PR_CAPBSET_READ>, B<PR_GET_TIMING>, "
msgstr ""
#. type: Plain text
-#: build/C/man2/prctl.2:827
+#: build/C/man2/prctl.2:917
msgid "I<arg2> is an invalid address."
msgstr ""
#. type: Plain text
-#: build/C/man2/prctl.2:832
+#: build/C/man2/prctl.2:930
+msgid ""
+"I<option> is B<PR_SET_SECCOMP>, I<arg2> is B<SECCOMP_MODE_FILTER>, the "
+"system was built with B<CONFIG_SECCOMP_FILTER>, and I<arg3> is an invalid "
+"address."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/prctl.2:935
msgid "The value of I<option> is not recognized."
msgstr ""
#. type: Plain text
-#: build/C/man2/prctl.2:844
+#: build/C/man2/prctl.2:947
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:849
+#: build/C/man2/prctl.2:952
msgid "I<arg2> is not valid value for this I<option>."
msgstr ""
#. type: Plain text
-#: build/C/man2/prctl.2:858
+#: build/C/man2/prctl.2:961
msgid ""
"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:864
+#: build/C/man2/prctl.2:971
+msgid ""
+"I<option> is B<PR_SET_SECCOMP>, I<arg2> is B<SECCOMP_MODE_FILTER>, and the "
+"kernel was not configured with B<CONFIG_SECCOMP_FILTER>."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/prctl.2:977
msgid "I<option> is B<PR_SET_MM>, and one of the following is true"
msgstr ""
#. type: Plain text
-#: build/C/man2/prctl.2:870
+#: build/C/man2/prctl.2:983
msgid "I<arg4> or I<arg5> is nonzero;"
msgstr ""
#. type: Plain text
-#: build/C/man2/prctl.2:875
+#: build/C/man2/prctl.2:988
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:885
+#: build/C/man2/prctl.2:998
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:897
+#: build/C/man2/prctl.2:1010
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:908
+#: build/C/man2/prctl.2:1021
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:916
+#: build/C/man2/prctl.2:1029
msgid "I<option> is B<PR_SET_PDEATHSIG> and I<arg2> is not a valid signal number."
msgstr ""
#. type: Plain text
-#: build/C/man2/prctl.2:927
+#: build/C/man2/prctl.2:1040
msgid ""
"I<option> is B<PR_SET_DUMPABLE> and I<arg2> is neither B<SUID_DUMP_DISABLE> "
"nor B<SUID_DUMP_USER>."
msgstr ""
#. type: Plain text
-#: build/C/man2/prctl.2:936
+#: build/C/man2/prctl.2:1049
msgid "I<option> is B<PR_SET_TIMING> and I<arg2> is not B<PR_TIMING_STATISTICAL>."
msgstr ""
#. type: Plain text
-#: build/C/man2/prctl.2:950
+#: build/C/man2/prctl.2:1063
msgid ""
"I<option> is B<PR_SET_NO_NEW_PRIVS> and I<arg2> is not equal to 1 or "
"I<arg3>, I<arg4>, or I<arg5> is nonzero."
msgstr ""
#. type: Plain text
-#: build/C/man2/prctl.2:962
+#: build/C/man2/prctl.2:1075
msgid ""
"I<option> is B<PR_GET_NO_NEW_PRIVS> and I<arg2>, I<arg3>, I<arg4>, or "
"I<arg5> is nonzero."
msgstr ""
#. type: Plain text
-#: build/C/man2/prctl.2:973
+#: build/C/man2/prctl.2:1086
msgid ""
"I<option> is B<PR_SET_THP_DISABLE> and I<arg3>, I<arg4>, or I<arg5> is "
"nonzero."
msgstr ""
#. type: Plain text
-#: build/C/man2/prctl.2:985
+#: build/C/man2/prctl.2:1098
msgid ""
"I<option> is B<PR_GET_THP_DISABLE> and I<arg2>, I<arg3>, I<arg4>, or I<arg5> "
"is nonzero."
msgstr ""
#. type: Plain text
-#: build/C/man2/prctl.2:997
+#: build/C/man2/prctl.2:1110
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:1007
+#: build/C/man2/prctl.2:1120
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:1015
+#: build/C/man2/prctl.2:1128
msgid ""
"I<option> is B<PR_CAPBSET_DROP>, and the caller does not have the "
"B<CAP_SETPCAP> capability."
msgstr ""
#. type: Plain text
-#: build/C/man2/prctl.2:1023
+#: build/C/man2/prctl.2:1136
msgid ""
"I<option> is B<PR_SET_MM>, and the caller does not have the "
"B<CAP_SYS_RESOURCE> capability."
msgstr ""
#. type: TP
-#: build/C/man2/prctl.2:1023
+#: build/C/man2/prctl.2:1136
#, no-wrap
msgid "B<EACCES>"
msgstr ""
#. type: Plain text
-#: build/C/man2/prctl.2:1033
+#: build/C/man2/prctl.2:1146
msgid ""
"I<option> is B<PR_SET_MM>, and I<arg3> is B<PR_SET_MM_EXE_FILE>, the file is "
"not executable."
msgstr ""
#. type: TP
-#: build/C/man2/prctl.2:1033
+#: build/C/man2/prctl.2:1146
#, no-wrap
msgid "B<EBUSY>"
msgstr ""
#. type: Plain text
-#: build/C/man2/prctl.2:1044
+#: build/C/man2/prctl.2:1157
msgid ""
"I<option> is B<PR_SET_MM>, I<arg3> is B<PR_SET_MM_EXE_FILE>, and this the "
"second attempt to change the I</proc/pid/exe> symbolic link, which is "
msgstr ""
#. type: TP
-#: build/C/man2/prctl.2:1044 build/C/man2/signalfd.2:266 build/C/man2/timerfd_create.2:338
+#: build/C/man2/prctl.2:1157 build/C/man2/signalfd.2:266 build/C/man2/timerfd_create.2:345
#, no-wrap
msgid "B<EBADF>"
msgstr ""
#. .BR PR_SET_SECCOMP ,
#. and secure computing mode is already 1.
#. type: Plain text
-#: build/C/man2/prctl.2:1063
+#: build/C/man2/prctl.2:1176
msgid ""
"I<option> is B<PR_SET_MM>, I<arg3> is B<PR_SET_MM_EXE_FILE>, and the file "
"descriptor passed in I<arg4> is not valid."
msgstr ""
+#. type: TP
+#: build/C/man2/prctl.2:1176
+#, no-wrap
+msgid "B<ENXIO>"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/prctl.2:1185
+msgid ""
+"I<option> was B<PR_MPX_ENABLE_MANAGEMENT> or B<PR_MPX_DISABLE_MANAGEMENT> "
+"and the kernel or the CPU does not support MPX management. Check that the "
+"kernel and processor have MPX support."
+msgstr ""
+
#. The library interface was added in glibc 2.0.6
#. type: Plain text
-#: build/C/man2/prctl.2:1068
+#: build/C/man2/prctl.2:1190
msgid "The B<prctl>() system call was introduced in Linux 2.1.57."
msgstr ""
#. type: Plain text
-#: build/C/man2/prctl.2:1075
+#: build/C/man2/prctl.2:1197
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:1077
+#: build/C/man2/prctl.2:1199
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:1082
+#: build/C/man2/prctl.2:1204
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:1085
+#: build/C/man2/prctl.2:1207
msgid "B<signal>(2), B<core>(5)"
msgstr ""
msgstr ""
#. type: Plain text
-#: build/C/man3/profil.3:86
-msgid "B<gprof>(1), B<setitimer>(2), B<sigaction>(2), B<signal>(2)"
+#: build/C/man3/profil.3:87
+msgid "B<gprof>(1), B<sprof>(1), B<setitimer>(2), B<sigaction>(2), B<signal>(2)"
msgstr ""
#. type: TH
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
+#. 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:109
msgid "In some circumstances, a trailing newline is not printed."
msgstr ""
-#. FIXME http://sourceware.org/bugzilla/show_bug.cgi?id=12108
+#. 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:113
msgstr ""
#. type: TH
-#: build/C/man2/restart_syscall.2:33
+#: build/C/man2/restart_syscall.2:33 build/C/man2/sgetmask.2:26 build/C/man2/sigreturn.2:30 build/C/man3/sigvec.3:26 build/C/man2/tkill.2:29
#, no-wrap
-msgid "2014-02-11"
+msgid "2014-12-31"
msgstr ""
#. type: Plain text
#. These system calls correspond to the special internal errno value
#. ERESTART_RESTARTBLOCK. Each of the system calls has a "restart"
#. helper function that is invoked by restart_syscall().
+#. Notable (as at Linux 3.17) is that poll() has such a "restart"
+#. function, but ppoll(), select(), and pselect() do not.
+#. This means that the latter system calls do not take account of the
+#. time spent in the stopped state when restarting.
#. type: Plain text
-#: build/C/man2/restart_syscall.2:84
+#: build/C/man2/restart_syscall.2:88
msgid ""
"B<restart_syscall>() is used for restarting only those system calls that, "
"when restarted, should adjust their time-related parameters\\(emnamely "
"system call with a time argument that is suitably adjusted to account for "
"the time that has already elapsed (including the time where the process was "
"stopped by a signal). Without the B<restart_syscall>() mechanism, "
-"restarting these system calls would not correctly deduce the already elapsed "
+"restarting these system calls would not correctly deduct the already elapsed "
"time when the process continued execution."
msgstr ""
#. type: Plain text
-#: build/C/man2/restart_syscall.2:88
+#: build/C/man2/restart_syscall.2:92
msgid ""
"The return value of B<restart_syscall>() is the return value of whatever "
"system call is being restarted."
msgstr ""
#. type: Plain text
-#: build/C/man2/restart_syscall.2:92
+#: build/C/man2/restart_syscall.2:96
msgid ""
"I<errno> is set as per the errors for whatever system call is being "
"restarted by B<restart_syscall>()."
msgstr ""
#. type: Plain text
-#: build/C/man2/restart_syscall.2:96
+#: build/C/man2/restart_syscall.2:100
msgid "The B<restart_syscall>() system call is present since Linux 2.6."
msgstr ""
#. type: Plain text
-#: build/C/man2/restart_syscall.2:98
+#: build/C/man2/restart_syscall.2:102
msgid "This system call is Linux-specific."
msgstr ""
#. type: Plain text
-#: build/C/man2/restart_syscall.2:102
+#: build/C/man2/restart_syscall.2:106
msgid ""
"There is no glibc wrapper for this system call, because it is intended for "
"use only by the kernel and should never be called by applications."
msgstr ""
-#
-#. FIXME
-#. There is one oddness in the implementation though, with respect to
-#. nanosleep() (and probably also clock_nanosleep()). The scenario
-#. is as follows:
-#. 1. Start a nanosleep() for (say) 30 seconds,
-#. 2. Stop the process with (say) SIGTSTP (^Z).
-#. 3. Resume the process with SIGCONT,
-#. 4. Upon return, the 'rem' argument of nanosleep() will contain the
-#. remaining unslept time **at the time when SIGTSTP was delivered**.
-#. The behavior at point 4 is odd, but doesn't violate the standards, which
-#. specify the treatment of 'rem' only when the system call returns with
-#. the error EINTR (i.e., the call was interrupted by a signal handler).
-#. type: Plain text
-#: build/C/man2/restart_syscall.2:123
-msgid ""
-"From user space, the operation of B<restart_syscall>(2) is largely "
+#. type: Plain text
+#: build/C/man2/restart_syscall.2:128
+msgid ""
+"The kernel uses B<restart_syscall>() to ensure that when a system call is "
+"restarted after a process has been stopped by a signal and then resumed by "
+"B<SIGCONT>, then the time that the process spent in the stopped state is "
+"counted against the timeout interval specified in the original system call. "
+"In the case of system calls that take a timeout argument and automatically "
+"restart after a stop signal plus B<SIGCONT>, but which do not have the "
+"B<restart_syscall>() mechanism built in, then, after the process resumes "
+"execution, the time that the process spent in the stop state is I<not> "
+"counted against the timeout value. Notable examples of system calls that "
+"suffer this problem are B<ppoll>(2), B<select>(2), and B<pselect>(2)."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/restart_syscall.2:135
+msgid ""
+"From user space, the operation of B<restart_syscall>() is largely "
"invisible: to the process that made the system call that is restarted, it "
"appears as though that system call executed and returned in the usual "
"fashion."
msgstr ""
-#. FIXME select(2) should probably get the restart_syscall() treatment:
+#. FIXME . ppoll(2), select(2), and pselect(2)
+#. should probably get the restart_syscall() treatment:
#. If a select() call is suspended by stop-sig+SIGCONT, the time
#. spent suspended is *not* deducted when the select() is restarted.
-#. FIXME: check whether recvmmsg() handles stop-sig+SIGCONT properly.
+#. FIXME . check whether recvmmsg() handles stop-sig+SIGCONT properly.
#. type: Plain text
-#: build/C/man2/restart_syscall.2:131
+#: build/C/man2/restart_syscall.2:144
msgid "B<sigaction>(2), B<sigreturn>(2), B<signal>(7)"
msgstr ""
msgstr ""
#. type: TH
-#: build/C/man2/rt_sigqueueinfo.2:25 build/C/man2/tkill.2:29
+#: build/C/man2/rt_sigqueueinfo.2:25
#, no-wrap
msgid "2012-07-13"
msgstr ""
msgstr ""
#. type: TP
-#: 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
+#: 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:178
#, no-wrap
msgid "B<EAGAIN>"
msgstr ""
msgstr ""
#. type: Plain text
-#: build/C/man2/rt_sigqueueinfo.2:178 build/C/man2/sgetmask.2:68 build/C/man2/timerfd_create.2:373
+#: build/C/man2/rt_sigqueueinfo.2:178 build/C/man2/sgetmask.2:75 build/C/man2/timerfd_create.2:380
msgid "These system calls are Linux-specific."
msgstr ""
msgid "SGETMASK"
msgstr ""
-#. type: TH
-#: build/C/man2/sgetmask.2:26
-#, no-wrap
-msgid "2014-02-25"
-msgstr ""
-
#. type: Plain text
#: build/C/man2/sgetmask.2:29
msgid "sgetmask, ssetmask - manipulation of signal mask (obsolete)"
msgid "These system calls always succeed."
msgstr ""
+#. f6187769dae48234f3877df3c4d99294cc2254fa
#. type: Plain text
-#: build/C/man2/sgetmask.2:72
+#: build/C/man2/sgetmask.2:73
+msgid ""
+"Since Linux 3.16, support for these system calls is optional, depending on "
+"whether the kernel was built with the B<CONFIG_SGETMASK_SYSCALL> option."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/sgetmask.2:79
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:75
+#: build/C/man2/sgetmask.2:82
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:77
+#: build/C/man2/sgetmask.2:84
msgid "These system calls do not exist on x86-64."
msgstr ""
#. type: Plain text
-#: build/C/man2/sgetmask.2:82
+#: build/C/man2/sgetmask.2:89
msgid "It is not possible to block B<SIGSTOP> or B<SIGKILL>."
msgstr ""
#. type: Plain text
-#: build/C/man2/sgetmask.2:85
+#: build/C/man2/sgetmask.2:92
msgid "B<sigprocmask>(2), B<signal>(7)"
msgstr ""
#. type: TH
-#: build/C/man2/sigaction.2:47
+#: build/C/man2/sigaction.2:49
#, no-wrap
msgid "SIGACTION"
msgstr ""
#. type: TH
-#: build/C/man2/sigaction.2:47
+#: build/C/man2/sigaction.2:49
#, no-wrap
-msgid "2014-04-27"
+msgid "2015-01-22"
msgstr ""
#. type: Plain text
-#: build/C/man2/sigaction.2:50
+#: build/C/man2/sigaction.2:52
msgid "sigaction - examine and change a signal action"
msgstr ""
#. type: Plain text
-#: build/C/man2/sigaction.2:56
+#: build/C/man2/sigaction.2:58
#, 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:66
+#: build/C/man2/sigaction.2:68
msgid ""
"B<sigaction>(): _POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || "
"_POSIX_SOURCE"
msgstr ""
#. type: Plain text
-#: build/C/man2/sigaction.2:69
+#: build/C/man2/sigaction.2:71
msgid "I<siginfo_t>: _POSIX_C_SOURCE E<gt>= 199309L"
msgstr ""
#. type: Plain text
-#: build/C/man2/sigaction.2:78
+#: build/C/man2/sigaction.2:80
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:84
+#: build/C/man2/sigaction.2:86
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:95
+#: build/C/man2/sigaction.2:97
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:99
+#: build/C/man2/sigaction.2:101
msgid "The I<sigaction> structure is defined as something like:"
msgstr ""
#. type: Plain text
-#: build/C/man2/sigaction.2:109
+#: build/C/man2/sigaction.2:111
#, no-wrap
msgid ""
"struct sigaction {\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/sigaction.2:116
+#: build/C/man2/sigaction.2:118
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:123
+#: build/C/man2/sigaction.2:127
msgid ""
-"The I<sa_restorer> element is obsolete and should not be used. POSIX does "
-"not specify a I<sa_restorer> element."
+"The I<sa_restorer> field is not intended for application use. (POSIX does "
+"not specify a I<sa_restorer> field.) Some further details of purpose of "
+"this field can be found in B<sigreturn>(2)."
msgstr ""
#. type: Plain text
-#: build/C/man2/sigaction.2:133
+#: build/C/man2/sigaction.2:137
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:155
+#: build/C/man2/sigaction.2:159
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>. "
msgstr ""
#. type: Plain text
-#: build/C/man2/sigaction.2:165
+#: build/C/man2/sigaction.2:169
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:169
+#: build/C/man2/sigaction.2:173
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:170
+#: build/C/man2/sigaction.2:174
#, no-wrap
msgid "B<SA_NOCLDSTOP>"
msgstr ""
#. type: Plain text
-#: build/C/man2/sigaction.2:187
+#: build/C/man2/sigaction.2:191
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:187
+#: build/C/man2/sigaction.2:191
#, 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:201
+#: build/C/man2/sigaction.2:205
msgid ""
"If I<signum> is B<SIGCHLD>, do not transform children into zombies when they "
"terminate. See also B<waitpid>(2). This flag is meaningful only when "
msgstr ""
#. type: Plain text
-#: build/C/man2/sigaction.2:213
+#: build/C/man2/sigaction.2:217
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:213
+#: build/C/man2/sigaction.2:217
#, no-wrap
msgid "B<SA_NODEFER>"
msgstr ""
#. type: Plain text
-#: build/C/man2/sigaction.2:220
+#: build/C/man2/sigaction.2:224
msgid ""
"Do not prevent the signal from being received from within its own signal "
"handler. This flag is meaningful only when establishing a signal handler. "
msgstr ""
#. type: TP
-#: build/C/man2/sigaction.2:220
+#: build/C/man2/sigaction.2:224
#, no-wrap
msgid "B<SA_ONSTACK>"
msgstr ""
#. type: Plain text
-#: build/C/man2/sigaction.2:226
+#: build/C/man2/sigaction.2:230
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:226
+#: build/C/man2/sigaction.2:230
#, no-wrap
msgid "B<SA_RESETHAND>"
msgstr ""
#. type: Plain text
-#: build/C/man2/sigaction.2:232
+#: build/C/man2/sigaction.2:236
msgid ""
"Restore the signal action to the default upon entry to the signal handler. "
"This flag is meaningful only when establishing a signal handler. "
msgstr ""
#. type: TP
-#: build/C/man2/sigaction.2:232
+#: build/C/man2/sigaction.2:236
#, no-wrap
msgid "B<SA_RESTART>"
msgstr ""
#. type: Plain text
-#: build/C/man2/sigaction.2:240
+#: build/C/man2/sigaction.2:244
msgid ""
"Provide behavior compatible with BSD signal semantics by making certain "
"system calls restartable across signals. This flag is meaningful only when "
msgstr ""
#. type: TP
-#: build/C/man2/sigaction.2:240
+#: build/C/man2/sigaction.2:244
+#, no-wrap
+msgid "B<SA_RESTORER>"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/sigaction.2:253
+msgid ""
+"I<Not intended for application use>. This flag is used by C libraries to "
+"indicate that the I<sa_restorer> field contains the address of a \"signal "
+"trampoline\". See B<sigreturn>(2) for more details."
+msgstr ""
+
+#. type: TP
+#: build/C/man2/sigaction.2:253
#, 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:251
+#: build/C/man2/sigaction.2:264
msgid ""
"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 "
msgstr ""
#. type: Plain text
-#: build/C/man2/sigaction.2:258
+#: build/C/man2/sigaction.2:271
msgid ""
"The I<siginfo_t> argument to I<sa_sigaction> is a struct with the following "
-"elements:"
+"fields:"
msgstr ""
#. FIXME
-#. si_trapno seems to be only used on SPARC and Alpha;
+#. The siginfo_t 'si_trapno' field seems to be used only on SPARC and Alpha;
#. 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:289
+#: build/C/man2/sigaction.2:309
#, no-wrap
msgid ""
"siginfo_t {\n"
-" int si_signo; /* Signal number */\n"
-" int si_errno; /* An errno value */\n"
-" int si_code; /* Signal code */\n"
-" int si_trapno; /* Trap number that caused\n"
-" hardware-generated signal\n"
-" (unused on most architectures) */\n"
-" pid_t si_pid; /* Sending process ID */\n"
-" uid_t si_uid; /* Real user ID of sending process */\n"
-" int si_status; /* Exit value or signal */\n"
-" clock_t si_utime; /* User time consumed */\n"
-" clock_t si_stime; /* System time consumed */\n"
-" sigval_t si_value; /* Signal value */\n"
-" int si_int; /* POSIX.1b signal */\n"
-" void *si_ptr; /* POSIX.1b signal */\n"
-" int si_overrun; /* Timer overrun count; POSIX.1b timers */\n"
-" int si_timerid; /* Timer ID; POSIX.1b timers */\n"
-" void *si_addr; /* Memory location which caused fault */\n"
-" long si_band; /* Band event (was I<int> in\n"
-" glibc 2.3.2 and earlier) */\n"
-" int si_fd; /* File descriptor */\n"
-" short si_addr_lsb; /* Least significant bit of address\n"
-" (since Linux 2.6.32) */\n"
+" int si_signo; /* Signal number */\n"
+" int si_errno; /* An errno value */\n"
+" int si_code; /* Signal code */\n"
+" int si_trapno; /* Trap number that caused\n"
+" hardware-generated signal\n"
+" (unused on most architectures) */\n"
+" pid_t si_pid; /* Sending process ID */\n"
+" uid_t si_uid; /* Real user ID of sending process */\n"
+" int si_status; /* Exit value or signal */\n"
+" clock_t si_utime; /* User time consumed */\n"
+" clock_t si_stime; /* System time consumed */\n"
+" sigval_t si_value; /* Signal value */\n"
+" int si_int; /* POSIX.1b signal */\n"
+" void *si_ptr; /* POSIX.1b signal */\n"
+" int si_overrun; /* Timer overrun count;\n"
+" POSIX.1b timers */\n"
+" int si_timerid; /* Timer ID; POSIX.1b timers */\n"
+" void *si_addr; /* Memory location which caused fault */\n"
+" long si_band; /* Band event (was I<int> in\n"
+" glibc 2.3.2 and earlier) */\n"
+" int si_fd; /* File descriptor */\n"
+" short si_addr_lsb; /* Least significant bit of address\n"
+" (since Linux 2.6.32) */\n"
+" void *si_call_addr; /* Address of system call instruction\n"
+" (since Linux 3.5) */\n"
+" int si_syscall; /* Number of attempted system call\n"
+" (since Linux 3.5) */\n"
+" unsigned int si_arch; /* Architecture of attempted system call\n"
+" (since Linux 3.5) */\n"
"}\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/sigaction.2:298
+#: build/C/man2/sigaction.2:318
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:313
+#: build/C/man2/sigaction.2:333
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:329
+#: build/C/man2/sigaction.2:349
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:344
+#: build/C/man2/sigaction.2:364
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:391
+#: build/C/man2/sigaction.2:411
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 "
"B<time>(7))."
msgstr ""
-#. FIXME SIGTRAP also sets the following for ptrace_notify() ?
-#. info.si_code = exit_code;
-#. info.si_pid = task_pid_vnr(current);
-#. info.si_uid = current_uid(); /* Real UID */
#. type: Plain text
-#: build/C/man2/sigaction.2:427
+#: build/C/man2/sigaction.2:458
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 "
"I<si_addr_lsb>. This field indicates the least significant bit of the "
"reported address and therefore the extent of the corruption. For example, "
"if a full page was corrupted, I<si_addr_lsb> contains "
-"I<log2(sysconf(_SC_PAGESIZE))>. B<BUS_MCERR_*> and I<si_addr_lsb> are "
-"Linux-specific extensions."
+"I<log2(sysconf(_SC_PAGESIZE))>. When B<SIGTRAP> is delivered in response to "
+"a B<ptrace>(2) event (PTRACE_EVENT_foo), I<si_addr> is not populated, but "
+"I<si_pid> and I<si_uid> are populated with the respective process ID and "
+"user ID responsible for delivering the trap. In the case of B<seccomp>(2), "
+"the tracee will be shown as delivering the event. B<BUS_MCEERR_*> and "
+"I<si_addr_lsb> are Linux-specific extensions."
msgstr ""
#. type: Plain text
-#: build/C/man2/sigaction.2:441
+#: build/C/man2/sigaction.2:472
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 "
"occurred."
msgstr ""
+#. commit a0727e8ce513fe6890416da960181ceb10fbfae6
#. type: Plain text
-#: build/C/man2/sigaction.2:448
+#: build/C/man2/sigaction.2:485
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> "
-"for any signal, along with reason that the signal was generated."
+"B<SIGSYS>, generated (since Linux 3.5) when a seccomp filter returns "
+"B<SECCOMP_RET_TRAP>, fills in I<si_call_addr>, I<si_syscall>, I<si_arch>, "
+"I<si_errno>, and other fields as described in B<seccomp>(2)."
msgstr ""
-#. type: TP
-#: build/C/man2/sigaction.2:449
+#. type: Plain text
+#: build/C/man2/sigaction.2:495
+msgid ""
+"I<si_code> is a value (not a bit mask) indicating why this signal was sent. "
+"For a B<ptrace>(2) event, I<si_code> will contain B<SIGTRAP> and have the "
+"ptrace event in the high byte:"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/sigaction.2:498
#, no-wrap
-msgid "B<SI_USER>"
+msgid " (SIGTRAP | PTRACE_EVENT_foo E<lt>E<lt> 8).\n"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/sigaction.2:504
+msgid ""
+"For a regular signal, the following list shows the values which can be "
+"placed in I<si_code> for any signal, along with reason that the signal was "
+"generated."
msgstr ""
#. type: TP
-#: build/C/man2/sigaction.2:452 build/C/man7/signal.7:111
+#: build/C/man2/sigaction.2:505
#, no-wrap
-msgid "B<kill>(2)"
+msgid "B<SI_USER>"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/sigaction.2:508
+msgid "B<kill>(2)."
msgstr ""
#. type: TP
-#: build/C/man2/sigaction.2:452
+#: build/C/man2/sigaction.2:508
#, no-wrap
msgid "B<SI_KERNEL>"
msgstr ""
#. type: Plain text
-#: build/C/man2/sigaction.2:455
+#: build/C/man2/sigaction.2:511
msgid "Sent by the kernel."
msgstr ""
#. type: TP
-#: build/C/man2/sigaction.2:455
+#: build/C/man2/sigaction.2:511
#, no-wrap
msgid "B<SI_QUEUE>"
msgstr ""
-#. type: TP
-#: build/C/man2/sigaction.2:458 build/C/man7/signal.7:128
-#, no-wrap
-msgid "B<sigqueue>(3)"
+#. type: Plain text
+#: build/C/man2/sigaction.2:514
+msgid "B<sigqueue>(3)."
msgstr ""
#. type: TP
-#: build/C/man2/sigaction.2:458
+#: build/C/man2/sigaction.2:514
#, no-wrap
msgid "B<SI_TIMER>"
msgstr ""
#. type: Plain text
-#: build/C/man2/sigaction.2:461
-msgid "POSIX timer expired"
+#: build/C/man2/sigaction.2:517
+msgid "POSIX timer expired."
msgstr ""
#. type: TP
-#: build/C/man2/sigaction.2:461
+#: build/C/man2/sigaction.2:517
#, no-wrap
-msgid "B<SI_MESGQ>"
+msgid "B<SI_MESGQ> (since Linux 2.6.6)"
msgstr ""
#. type: Plain text
-#: build/C/man2/sigaction.2:465
-msgid "POSIX message queue state changed (since Linux 2.6.6); see B<mq_notify>(3)"
+#: build/C/man2/sigaction.2:521
+msgid "POSIX message queue state changed; see B<mq_notify>(3)."
msgstr ""
#. type: TP
-#: build/C/man2/sigaction.2:465
+#: build/C/man2/sigaction.2:521
#, no-wrap
msgid "B<SI_ASYNCIO>"
msgstr ""
#. type: Plain text
-#: build/C/man2/sigaction.2:468
-msgid "AIO completed"
+#: build/C/man2/sigaction.2:524
+msgid "AIO completed."
msgstr ""
#. type: TP
-#: build/C/man2/sigaction.2:468
+#: build/C/man2/sigaction.2:524
#, no-wrap
msgid "B<SI_SIGIO>"
msgstr ""
#. type: Plain text
-#: build/C/man2/sigaction.2:477
+#: build/C/man2/sigaction.2:533
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:477
+#: build/C/man2/sigaction.2:533
#, no-wrap
-msgid "B<SI_TKILL>"
+msgid "B<SI_TKILL> (since Linux 2.4.19)"
msgstr ""
#. SI_DETHREAD is defined in 2.6.9 sources, but isn't implemented
#. 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:486
-msgid "B<tkill>(2) or B<tgkill>(2) (since Linux 2.4.19)"
+#: build/C/man2/sigaction.2:541
+msgid "B<tkill>(2) or B<tgkill>(2)."
msgstr ""
#. type: Plain text
-#: build/C/man2/sigaction.2:493
+#: build/C/man2/sigaction.2:548
msgid "The following values can be placed in I<si_code> for a B<SIGILL> signal:"
msgstr ""
#. type: TP
-#: build/C/man2/sigaction.2:494
+#: build/C/man2/sigaction.2:549
#, no-wrap
msgid "B<ILL_ILLOPC>"
msgstr ""
#. type: Plain text
-#: build/C/man2/sigaction.2:497
-msgid "illegal opcode"
+#: build/C/man2/sigaction.2:552
+msgid "Illegal opcode."
msgstr ""
#. type: TP
-#: build/C/man2/sigaction.2:497
+#: build/C/man2/sigaction.2:552
#, no-wrap
msgid "B<ILL_ILLOPN>"
msgstr ""
#. type: Plain text
-#: build/C/man2/sigaction.2:500
-msgid "illegal operand"
+#: build/C/man2/sigaction.2:555
+msgid "Illegal operand."
msgstr ""
#. type: TP
-#: build/C/man2/sigaction.2:500
+#: build/C/man2/sigaction.2:555
#, no-wrap
msgid "B<ILL_ILLADR>"
msgstr ""
#. type: Plain text
-#: build/C/man2/sigaction.2:503
-msgid "illegal addressing mode"
+#: build/C/man2/sigaction.2:558
+msgid "Illegal addressing mode."
msgstr ""
#. type: TP
-#: build/C/man2/sigaction.2:503
+#: build/C/man2/sigaction.2:558
#, no-wrap
msgid "B<ILL_ILLTRP>"
msgstr ""
#. type: Plain text
-#: build/C/man2/sigaction.2:506
-msgid "illegal trap"
+#: build/C/man2/sigaction.2:561
+msgid "Illegal trap."
msgstr ""
#. type: TP
-#: build/C/man2/sigaction.2:506
+#: build/C/man2/sigaction.2:561
#, no-wrap
msgid "B<ILL_PRVOPC>"
msgstr ""
#. type: Plain text
-#: build/C/man2/sigaction.2:509
-msgid "privileged opcode"
+#: build/C/man2/sigaction.2:564
+msgid "Privileged opcode."
msgstr ""
#. type: TP
-#: build/C/man2/sigaction.2:509
+#: build/C/man2/sigaction.2:564
#, no-wrap
msgid "B<ILL_PRVREG>"
msgstr ""
#. type: Plain text
-#: build/C/man2/sigaction.2:512
-msgid "privileged register"
+#: build/C/man2/sigaction.2:567
+msgid "Privileged register."
msgstr ""
#. type: TP
-#: build/C/man2/sigaction.2:512
+#: build/C/man2/sigaction.2:567
#, no-wrap
msgid "B<ILL_COPROC>"
msgstr ""
#. type: Plain text
-#: build/C/man2/sigaction.2:515
-msgid "coprocessor error"
+#: build/C/man2/sigaction.2:570
+msgid "Coprocessor error."
msgstr ""
#. type: TP
-#: build/C/man2/sigaction.2:515
+#: build/C/man2/sigaction.2:570
#, no-wrap
msgid "B<ILL_BADSTK>"
msgstr ""
#. type: Plain text
-#: build/C/man2/sigaction.2:518
-msgid "internal stack error"
+#: build/C/man2/sigaction.2:573
+msgid "Internal stack error."
msgstr ""
#. type: Plain text
-#: build/C/man2/sigaction.2:525
+#: build/C/man2/sigaction.2:580
msgid "The following values can be placed in I<si_code> for a B<SIGFPE> signal:"
msgstr ""
#. type: TP
-#: build/C/man2/sigaction.2:526
+#: build/C/man2/sigaction.2:581
#, no-wrap
msgid "B<FPE_INTDIV>"
msgstr ""
#. type: Plain text
-#: build/C/man2/sigaction.2:529
-msgid "integer divide by zero"
+#: build/C/man2/sigaction.2:584
+msgid "Integer divide by zero."
msgstr ""
#. type: TP
-#: build/C/man2/sigaction.2:529
+#: build/C/man2/sigaction.2:584
#, no-wrap
msgid "B<FPE_INTOVF>"
msgstr ""
#. type: Plain text
-#: build/C/man2/sigaction.2:532
-msgid "integer overflow"
+#: build/C/man2/sigaction.2:587
+msgid "Integer overflow."
msgstr ""
#. type: TP
-#: build/C/man2/sigaction.2:532
+#: build/C/man2/sigaction.2:587
#, no-wrap
msgid "B<FPE_FLTDIV>"
msgstr ""
#. type: Plain text
-#: build/C/man2/sigaction.2:535
-msgid "floating-point divide by zero"
+#: build/C/man2/sigaction.2:590
+msgid "Floating-point divide by zero."
msgstr ""
#. type: TP
-#: build/C/man2/sigaction.2:535
+#: build/C/man2/sigaction.2:590
#, no-wrap
msgid "B<FPE_FLTOVF>"
msgstr ""
#. type: Plain text
-#: build/C/man2/sigaction.2:538
-msgid "floating-point overflow"
+#: build/C/man2/sigaction.2:593
+msgid "Floating-point overflow."
msgstr ""
#. type: TP
-#: build/C/man2/sigaction.2:538
+#: build/C/man2/sigaction.2:593
#, no-wrap
msgid "B<FPE_FLTUND>"
msgstr ""
#. type: Plain text
-#: build/C/man2/sigaction.2:541
-msgid "floating-point underflow"
+#: build/C/man2/sigaction.2:596
+msgid "Floating-point underflow."
msgstr ""
#. type: TP
-#: build/C/man2/sigaction.2:541
+#: build/C/man2/sigaction.2:596
#, no-wrap
msgid "B<FPE_FLTRES>"
msgstr ""
#. type: Plain text
-#: build/C/man2/sigaction.2:544
-msgid "floating-point inexact result"
+#: build/C/man2/sigaction.2:599
+msgid "Floating-point inexact result."
msgstr ""
#. type: TP
-#: build/C/man2/sigaction.2:544
+#: build/C/man2/sigaction.2:599
#, no-wrap
msgid "B<FPE_FLTINV>"
msgstr ""
#. type: Plain text
-#: build/C/man2/sigaction.2:547
-msgid "floating-point invalid operation"
+#: build/C/man2/sigaction.2:602
+msgid "Floating-point invalid operation."
msgstr ""
#. type: TP
-#: build/C/man2/sigaction.2:547
+#: build/C/man2/sigaction.2:602
#, no-wrap
msgid "B<FPE_FLTSUB>"
msgstr ""
#. type: Plain text
-#: build/C/man2/sigaction.2:550
-msgid "subscript out of range"
+#: build/C/man2/sigaction.2:605
+msgid "Subscript out of range."
msgstr ""
#. type: Plain text
-#: build/C/man2/sigaction.2:557
+#: build/C/man2/sigaction.2:612
msgid "The following values can be placed in I<si_code> for a B<SIGSEGV> signal:"
msgstr ""
#. type: TP
-#: build/C/man2/sigaction.2:558
+#: build/C/man2/sigaction.2:613
#, no-wrap
msgid "B<SEGV_MAPERR>"
msgstr ""
#. type: Plain text
-#: build/C/man2/sigaction.2:561
-msgid "address not mapped to object"
+#: build/C/man2/sigaction.2:616
+msgid "Address not mapped to object."
msgstr ""
#. type: TP
-#: build/C/man2/sigaction.2:561
+#: build/C/man2/sigaction.2:616
#, no-wrap
msgid "B<SEGV_ACCERR>"
msgstr ""
#. type: Plain text
-#: build/C/man2/sigaction.2:564
-msgid "invalid permissions for mapped object"
+#: build/C/man2/sigaction.2:619
+msgid "Invalid permissions for mapped object."
msgstr ""
#. type: Plain text
-#: build/C/man2/sigaction.2:571
+#: build/C/man2/sigaction.2:626
msgid "The following values can be placed in I<si_code> for a B<SIGBUS> signal:"
msgstr ""
#. type: TP
-#: build/C/man2/sigaction.2:572
+#: build/C/man2/sigaction.2:627
#, no-wrap
msgid "B<BUS_ADRALN>"
msgstr ""
#. type: Plain text
-#: build/C/man2/sigaction.2:575
-msgid "invalid address alignment"
+#: build/C/man2/sigaction.2:630
+msgid "Invalid address alignment."
msgstr ""
#. type: TP
-#: build/C/man2/sigaction.2:575
+#: build/C/man2/sigaction.2:630
#, no-wrap
msgid "B<BUS_ADRERR>"
msgstr ""
#. type: Plain text
-#: build/C/man2/sigaction.2:578
-msgid "nonexistent physical address"
+#: build/C/man2/sigaction.2:633
+msgid "Nonexistent physical address."
msgstr ""
#. type: TP
-#: build/C/man2/sigaction.2:578
+#: build/C/man2/sigaction.2:633
#, no-wrap
msgid "B<BUS_OBJERR>"
msgstr ""
#. type: Plain text
-#: build/C/man2/sigaction.2:581
-msgid "object-specific hardware error"
+#: build/C/man2/sigaction.2:636
+msgid "Object-specific hardware error."
msgstr ""
#. type: TP
-#: build/C/man2/sigaction.2:581
+#: build/C/man2/sigaction.2:636
#, no-wrap
msgid "B<BUS_MCEERR_AR> (since Linux 2.6.32)"
msgstr ""
#. type: Plain text
-#: build/C/man2/sigaction.2:584
+#: build/C/man2/sigaction.2:639
msgid "Hardware memory error consumed on a machine check; action required."
msgstr ""
#. type: TP
-#: build/C/man2/sigaction.2:584
+#: build/C/man2/sigaction.2:639
#, no-wrap
msgid "B<BUS_MCEERR_AO> (since Linux 2.6.32)"
msgstr ""
#. type: Plain text
-#: build/C/man2/sigaction.2:587
+#: build/C/man2/sigaction.2:642
msgid "Hardware memory error detected in process but not consumed; action optional."
msgstr ""
#. type: Plain text
-#: build/C/man2/sigaction.2:594
+#: build/C/man2/sigaction.2:649
msgid "The following values can be placed in I<si_code> for a B<SIGTRAP> signal:"
msgstr ""
#. type: TP
-#: build/C/man2/sigaction.2:595
+#: build/C/man2/sigaction.2:650
#, no-wrap
msgid "B<TRAP_BRKPT>"
msgstr ""
#. type: Plain text
-#: build/C/man2/sigaction.2:598
-msgid "process breakpoint"
+#: build/C/man2/sigaction.2:653
+msgid "Process breakpoint."
msgstr ""
#. type: TP
-#: build/C/man2/sigaction.2:598
+#: build/C/man2/sigaction.2:653
#, no-wrap
msgid "B<TRAP_TRACE>"
msgstr ""
#. type: Plain text
-#: build/C/man2/sigaction.2:601
-msgid "process trace trap"
+#: build/C/man2/sigaction.2:656
+msgid "Process trace trap."
msgstr ""
#. type: TP
-#: build/C/man2/sigaction.2:601
+#: build/C/man2/sigaction.2:656
#, no-wrap
msgid "B<TRAP_BRANCH> (since Linux 2.4)"
msgstr ""
#. type: Plain text
-#: build/C/man2/sigaction.2:604
-msgid "process taken branch trap"
+#: build/C/man2/sigaction.2:659
+msgid "Process taken branch trap."
msgstr ""
#. type: TP
-#: build/C/man2/sigaction.2:604
+#: build/C/man2/sigaction.2:659
#, no-wrap
msgid "B<TRAP_HWBKPT> (since Linux 2.4)"
msgstr ""
#. type: Plain text
-#: build/C/man2/sigaction.2:607
-msgid "hardware breakpoint/watchpoint"
+#: build/C/man2/sigaction.2:662
+msgid "Hardware breakpoint/watchpoint."
msgstr ""
#. type: Plain text
-#: build/C/man2/sigaction.2:614
+#: build/C/man2/sigaction.2:669
msgid "The following values can be placed in I<si_code> for a B<SIGCHLD> signal:"
msgstr ""
#. type: TP
-#: build/C/man2/sigaction.2:615
+#: build/C/man2/sigaction.2:670
#, no-wrap
msgid "B<CLD_EXITED>"
msgstr ""
#. type: Plain text
-#: build/C/man2/sigaction.2:618
-msgid "child has exited"
+#: build/C/man2/sigaction.2:673
+msgid "Child has exited."
msgstr ""
#. type: TP
-#: build/C/man2/sigaction.2:618
+#: build/C/man2/sigaction.2:673
#, no-wrap
msgid "B<CLD_KILLED>"
msgstr ""
#. type: Plain text
-#: build/C/man2/sigaction.2:621
-msgid "child was killed"
+#: build/C/man2/sigaction.2:676
+msgid "Child was killed."
msgstr ""
#. type: TP
-#: build/C/man2/sigaction.2:621
+#: build/C/man2/sigaction.2:676
#, no-wrap
msgid "B<CLD_DUMPED>"
msgstr ""
#. type: Plain text
-#: build/C/man2/sigaction.2:624
-msgid "child terminated abnormally"
+#: build/C/man2/sigaction.2:679
+msgid "Child terminated abnormally."
msgstr ""
#. type: TP
-#: build/C/man2/sigaction.2:624
+#: build/C/man2/sigaction.2:679
#, no-wrap
msgid "B<CLD_TRAPPED>"
msgstr ""
#. type: Plain text
-#: build/C/man2/sigaction.2:627
-msgid "traced child has trapped"
+#: build/C/man2/sigaction.2:682
+msgid "Traced child has trapped."
msgstr ""
#. type: TP
-#: build/C/man2/sigaction.2:627
+#: build/C/man2/sigaction.2:682
#, no-wrap
msgid "B<CLD_STOPPED>"
msgstr ""
#. type: Plain text
-#: build/C/man2/sigaction.2:630
-msgid "child has stopped"
+#: build/C/man2/sigaction.2:685
+msgid "Child has stopped."
msgstr ""
#. type: TP
-#: build/C/man2/sigaction.2:630
+#: build/C/man2/sigaction.2:685
#, no-wrap
-msgid "B<CLD_CONTINUED>"
+msgid "B<CLD_CONTINUED> (since Linux 2.6.9)"
msgstr ""
#. type: Plain text
-#: build/C/man2/sigaction.2:633
-msgid "stopped child has continued (since Linux 2.6.9)"
+#: build/C/man2/sigaction.2:688
+msgid "Stopped child has continued."
msgstr ""
#. type: Plain text
-#: build/C/man2/sigaction.2:640
+#: build/C/man2/sigaction.2:695
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:641
+#: build/C/man2/sigaction.2:696
#, no-wrap
msgid "B<POLL_IN>"
msgstr ""
#. type: Plain text
-#: build/C/man2/sigaction.2:644
-msgid "data input available"
+#: build/C/man2/sigaction.2:699
+msgid "Data input available."
msgstr ""
#. type: TP
-#: build/C/man2/sigaction.2:644
+#: build/C/man2/sigaction.2:699
#, no-wrap
msgid "B<POLL_OUT>"
msgstr ""
#. type: Plain text
-#: build/C/man2/sigaction.2:647
-msgid "output buffers available"
+#: build/C/man2/sigaction.2:702
+msgid "Output buffers available."
msgstr ""
#. type: TP
-#: build/C/man2/sigaction.2:647
+#: build/C/man2/sigaction.2:702
#, no-wrap
msgid "B<POLL_MSG>"
msgstr ""
#. type: Plain text
-#: build/C/man2/sigaction.2:650
-msgid "input message available"
+#: build/C/man2/sigaction.2:705
+msgid "Input message available."
msgstr ""
#. type: TP
-#: build/C/man2/sigaction.2:650
+#: build/C/man2/sigaction.2:705
#, no-wrap
msgid "B<POLL_ERR>"
msgstr ""
#. type: Plain text
-#: build/C/man2/sigaction.2:653
-msgid "I/O error"
+#: build/C/man2/sigaction.2:708
+msgid "I/O error."
msgstr ""
#. type: TP
-#: build/C/man2/sigaction.2:653
+#: build/C/man2/sigaction.2:708
#, no-wrap
msgid "B<POLL_PRI>"
msgstr ""
#. type: Plain text
-#: build/C/man2/sigaction.2:656
-msgid "high priority input available"
+#: build/C/man2/sigaction.2:711
+msgid "High priority input available."
msgstr ""
#. type: TP
-#: build/C/man2/sigaction.2:656
+#: build/C/man2/sigaction.2:711
#, no-wrap
msgid "B<POLL_HUP>"
msgstr ""
#. type: Plain text
-#: build/C/man2/sigaction.2:659
-msgid "device disconnected"
+#: build/C/man2/sigaction.2:714
+msgid "Device disconnected."
msgstr ""
#. type: Plain text
-#: build/C/man2/sigaction.2:665
+#: build/C/man2/sigaction.2:721
+msgid "The following value can be placed in I<si_code> for a B<SIGSYS> signal:"
+msgstr ""
+
+#. type: TP
+#: build/C/man2/sigaction.2:722
+#, no-wrap
+msgid "B<SYS_SECCOMP> (since Linux 3.5)"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/sigaction.2:727
+msgid "Triggered by a B<seccomp>(2) filter rule."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/sigaction.2:733
msgid ""
"B<sigaction>() returns 0 on success; on error, -1 is returned, and I<errno> "
"is set to indicate the error."
msgstr ""
#. type: Plain text
-#: build/C/man2/sigaction.2:670
+#: build/C/man2/sigaction.2:738
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:677
+#: build/C/man2/sigaction.2:745
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:680
+#: build/C/man2/sigaction.2:748
msgid "POSIX.1-2001, SVr4."
msgstr ""
#. type: Plain text
-#: build/C/man2/sigaction.2:688 build/C/man7/signal.7:105
+#: build/C/man2/sigaction.2:756 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:706 build/C/man2/signal.2:134
+#: build/C/man2/sigaction.2:774 build/C/man2/signal.2:134
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:723
+#: build/C/man2/sigaction.2:791
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:736
+#: build/C/man2/sigaction.2:804
msgid ""
"POSIX.1-1990 specified only 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:740
+#: build/C/man2/sigaction.2:808
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:750
+#: build/C/man2/sigaction.2:818
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:756
+#: build/C/man2/sigaction.2:824
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:762
+#: build/C/man2/sigaction.2:830
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:766 build/C/man2/sigpending.2:70 build/C/man2/sigprocmask.2:144 build/C/man2/sigsuspend.2:108
+#: build/C/man2/sigaction.2:834 build/C/man2/sigpending.2:70 build/C/man2/sigprocmask.2:144 build/C/man2/sigsuspend.2:108
msgid "See B<sigsetops>(3) for details on manipulating signal sets."
msgstr ""
#. type: Plain text
-#: build/C/man2/sigaction.2:771
+#: build/C/man2/sigaction.2:839
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:771
+#: build/C/man2/sigaction.2:839
#, no-wrap
msgid "Undocumented"
msgstr ""
#. type: Plain text
-#: build/C/man2/sigaction.2:781
+#: build/C/man2/sigaction.2:849
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 "
msgstr ""
#. type: Plain text
-#: build/C/man2/sigaction.2:790
+#: build/C/man2/sigaction.2:858
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:793
+#: build/C/man2/sigaction.2:861
msgid "See B<mprotect>(2)."
msgstr ""
#. type: Plain text
-#: build/C/man2/sigaction.2:813
+#: build/C/man2/sigaction.2:883
msgid ""
"B<kill>(1), B<kill>(2), B<killpg>(2), B<pause>(2), B<restart_syscall>(2), "
-"B<sigaltstack>(2), B<signal>(2), B<signalfd>(2), B<sigpending>(2), "
-"B<sigprocmask>(2), B<sigsuspend>(2), B<wait>(2), B<raise>(3), "
-"B<siginterrupt>(3), B<sigqueue>(3), B<sigsetops>(3), B<sigvec>(3), "
-"B<core>(5), B<signal>(7)"
+"B<seccomp>(2) B<sigaltstack>(2), B<signal>(2), B<signalfd>(2), "
+"B<sigpending>(2), B<sigreturn>(2), B<sigprocmask>(2), B<sigsuspend>(2), "
+"B<wait>(2), B<raise>(3), B<siginterrupt>(3), B<sigqueue>(3), "
+"B<sigsetops>(3), B<sigvec>(3), B<core>(5), B<signal>(7)"
msgstr ""
#. type: TH
#. type: Plain text
#: build/C/man2/sigaltstack.2:153
msgid ""
-"The specified size of the new alternate signal stack I<ss.ss_size> as less "
+"The specified size of the new alternate signal stack I<ss.ss_size> was less "
"than B<MINSTKSZ>."
msgstr ""
msgstr ""
#. type: TP
-#: build/C/man7/sigevent.7:73 build/C/man2/timer_create.2:107
+#: build/C/man7/sigevent.7:73 build/C/man2/timer_create.2:109
#, no-wrap
msgid "B<SIGEV_NONE>"
msgstr ""
msgstr ""
#. type: TP
-#: build/C/man7/sigevent.7:76 build/C/man2/timer_create.2:112
+#: build/C/man7/sigevent.7:76 build/C/man2/timer_create.2:114
#, no-wrap
msgid "B<SIGEV_SIGNAL>"
msgstr ""
msgstr ""
#. type: TP
-#: build/C/man7/sigevent.7:108 build/C/man2/timer_create.2:130
+#: build/C/man7/sigevent.7:108 build/C/man2/timer_create.2:132
#, no-wrap
msgid "B<SIGEV_THREAD>"
msgstr ""
msgstr ""
#. type: TP
-#: build/C/man7/sigevent.7:125 build/C/man2/timer_create.2:138
+#: build/C/man7/sigevent.7:125 build/C/man2/timer_create.2:140
#, no-wrap
msgid "B<SIGEV_THREAD_ID> (Linux-specific)"
msgstr ""
msgstr ""
#. type: Plain text
-#: build/C/man7/sigevent.7:132 build/C/man2/sigpending.2:66 build/C/man2/sigprocmask.2:114 build/C/man3/sigqueue.3:121 build/C/man3/sigsetops.3:146 build/C/man2/sigsuspend.2:86 build/C/man3/sigwait.3:87 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
+#: build/C/man7/sigevent.7:132 build/C/man2/sigpending.2:66 build/C/man2/sigprocmask.2:114 build/C/man3/sigqueue.3:121 build/C/man3/sigsetops.3:147 build/C/man2/sigsuspend.2:86 build/C/man3/sigwait.3:87 build/C/man2/sigwaitinfo.2:135 build/C/man2/timer_create.2:197 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 ""
msgstr ""
#. type: TH
-#: build/C/man3/siginterrupt.3:31 build/C/man2/signal.2:36 build/C/man2/sigprocmask.2:29 build/C/man2/sigsuspend.2:29
+#: build/C/man3/siginterrupt.3:31
#, no-wrap
-msgid "2013-04-19"
+msgid "2014-06-13"
msgstr ""
#. type: Plain text
msgstr ""
#. type: Plain text
-#: build/C/man3/siginterrupt.3:96
+#: build/C/man3/siginterrupt.3:93
+msgid ""
+"The B<siginterrupt>() function uses a global variable that is not "
+"protected, so it is not thread-safe."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man3/siginterrupt.3:102
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:98
+#: build/C/man3/siginterrupt.3:104
msgid "B<signal>(2)"
msgstr ""
msgid "SIGNAL"
msgstr ""
+#. type: TH
+#: build/C/man2/signal.2:36 build/C/man3/sigpause.3:25 build/C/man2/sigwaitinfo.2:25 build/C/man2/timer_create.2:33 build/C/man2/wait.2:49
+#, no-wrap
+msgid "2014-08-19"
+msgstr ""
+
#. type: Plain text
#: build/C/man2/signal.2:39
msgid "signal - ANSI C signal handling"
#. System V semantics are also provided if one uses the separate
#. .BR sysv_signal (3)
#. function.
+#. .IP *
+#. The
+#. .BR signal ()
+#. function in Linux libc4 and libc5 provide System\ V semantics.
+#. If one on a libc5 system includes
+#. .I <bsd/signal.h>
+#. instead of
+#. .IR <signal.h> ,
+#. then
+#. .BR signal ()
+#. provides BSD semantics.
#. type: Plain text
-#: build/C/man2/signal.2:267
+#: build/C/man2/signal.2:278
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:278
-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>> "
-"instead of I<E<lt>signal.hE<gt>>, then B<signal>() provides BSD semantics."
-msgstr ""
-
-#. type: Plain text
#: build/C/man2/signal.2:297
msgid ""
"B<kill>(1), B<alarm>(2), B<kill>(2), B<killpg>(2), B<pause>(2), "
"B<signal>(7)"
msgstr ""
-#. type: TH
-#: build/C/man7/signal.7:46 build/C/man2/sigreturn.2:29
-#, no-wrap
-msgid "2013-07-30"
-msgstr ""
-
#. type: Plain text
#: build/C/man7/signal.7:49
msgid "signal - overview of signals"
msgid "Sends a signal to the calling thread."
msgstr ""
+#. type: TP
+#: build/C/man7/signal.7:111
+#, no-wrap
+msgid "B<kill>(2)"
+msgstr ""
+
#. type: Plain text
#: build/C/man7/signal.7:116
msgid ""
"the system call used to implement B<pthread_kill>(3).)"
msgstr ""
+#. type: TP
+#: build/C/man7/signal.7:128
+#, no-wrap
+msgid "B<sigqueue>(3)"
+msgstr ""
+
#. type: Plain text
#: build/C/man7/signal.7:131
msgid "Sends a real-time signal with accompanying data to a specified process."
"call will fail with the error B<EINTR>:"
msgstr ""
+#. commit 1ca39ab9d21ac93f94b9e3eb364ea9a5cf2aba06
#. type: Plain text
-#: build/C/man7/signal.7:653
+#: build/C/man7/signal.7:672
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 "
"for an indefinite time, for example, a terminal, pipe, or socket. (A disk "
-"is not a slow device according to this definition.) If an I/O call on a "
-"slow device has already transferred some data by the time it is interrupted "
-"by a signal handler, then the call will return a success status (normally, "
-"the number of bytes transferred)."
+"is not a slow device according to this definition.) A B<read>(2) on an "
+"B<eventfd>(2), B<signalfd>(2), B<timerfd>(2), B<fanotify>(7), or "
+"B<inotify>(7) file descriptor is also considered to be a \"slow\" "
+"operation. (Before Linux 3.8, reads from an B<inotify>(7) file descriptor "
+"were not restartable; when interrupted by a signal handler, B<read>(2) "
+"always failed with the error B<EINTR>.) If an I/O call on a slow device has "
+"already transferred some data by the time it is interrupted by a signal "
+"handler, then the call will return a success status (normally, the number of "
+"bytes transferred)."
msgstr ""
#. type: Plain text
-#: build/C/man7/signal.7:657
+#: build/C/man7/signal.7:676
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:664
+#: build/C/man7/signal.7:683
msgid "B<wait>(2), B<wait3>(2), B<wait4>(2), B<waitid>(2), and B<waitpid>(2)."
msgstr ""
#. system calls switch to using EINTR. Consequently, they and are not
#. automatically restarted, and they show the stop/cont behavior
#. described below. (Verified from 2.6.26 source, and by experiment; mtk)
+#. FIXME . What about sendmmsg()?
#. type: Plain text
-#: build/C/man7/signal.7:680
+#: build/C/man7/signal.7:701
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 "
-"has been set on the socket (see below)."
+"B<recvmmsg>(2), B<recvmsg>(2), B<send>(2), B<sendto>(2), and B<sendmsg>(2), "
+"unless a timeout has been set on the socket (see below)."
msgstr ""
#. type: Plain text
-#: build/C/man7/signal.7:686
-msgid "File locking interfaces: B<flock>(2) and B<fcntl>(2) B<F_SETLKW>."
+#: build/C/man7/signal.7:711
+msgid ""
+"File locking interfaces: B<flock>(2) and the B<F_SETLKW> and "
+"B<F_OFD_SETLKW> operations of B<fcntl>(2)"
msgstr ""
#. type: Plain text
-#: build/C/man7/signal.7:693
+#: build/C/man7/signal.7:718
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:698
+#: build/C/man7/signal.7:723
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:705
+#: build/C/man7/signal.7:725
+msgid "B<getrandom>(2)."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man7/signal.7:729
+msgid "B<pthread_mutex_lock>(3), B<pthread_cond_wait>(3), and related APIs."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man7/signal.7:736
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:716
+#: build/C/man7/signal.7:747
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:736 build/C/man7/signal.7:810
+#: build/C/man7/signal.7:762 build/C/man7/signal.7:837
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 "
-"B<recvmsg>(2), if a receive timeout (B<SO_RCVTIMEO>) has been set; "
-"B<connect>(2), B<send>(2), B<sendto>(2), and B<sendmsg>(2), if a send "
-"timeout (B<SO_SNDTIMEO>) has been set."
+"\"Input\" socket interfaces, when a timeout (B<SO_RCVTIMEO>) has been set "
+"on the socket using B<setsockopt>(2): B<accept>(2), B<recv>(2), "
+"B<recvfrom>(2), B<recvmmsg>(2) (also with a non-NULL I<timeout> argument), "
+"and B<recvmsg>(2)."
msgstr ""
+#. FIXME . What about sendmmsg()?
#. type: Plain text
-#: build/C/man7/signal.7:743
+#: build/C/man7/signal.7:773 build/C/man7/signal.7:848
+msgid ""
+"\"Output\" socket interfaces, when a timeout (B<SO_SNDTIMEO>) has been set "
+"on the socket using B<setsockopt>(2): B<connect>(2), B<send>(2), "
+"B<sendto>(2), and B<sendmsg>(2)."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man7/signal.7:780
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:752
+#: build/C/man7/signal.7:789
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:760
+#: build/C/man7/signal.7:797
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:766
+#: build/C/man7/signal.7:803
msgid "Sleep interfaces: B<clock_nanosleep>(2), B<nanosleep>(2), and B<usleep>(3)."
msgstr ""
#. type: Plain text
-#: 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:773
+#: build/C/man7/signal.7:805
msgid "B<io_getevents>(2)."
msgstr ""
#. type: Plain text
-#: build/C/man7/signal.7:779
+#: build/C/man7/signal.7:811
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:779
+#: build/C/man7/signal.7:811
#, no-wrap
msgid "Interruption of system calls and library functions by stop signals"
msgstr ""
#. type: Plain text
-#: build/C/man7/signal.7:788
+#: build/C/man7/signal.7:820
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:790
+#: build/C/man7/signal.7:822
msgid "The Linux interfaces that display this behavior are:"
msgstr ""
#. type: Plain text
-#: build/C/man7/signal.7:813
+#: build/C/man7/signal.7:851
msgid "B<epoll_wait>(2), B<epoll_pwait>(2)."
msgstr ""
#. type: Plain text
-#: build/C/man7/signal.7:816
+#: build/C/man7/signal.7:854
msgid "B<semop>(2), B<semtimedop>(2)."
msgstr ""
#. type: Plain text
-#: build/C/man7/signal.7:819
+#: build/C/man7/signal.7:857
msgid "B<sigtimedwait>(2), B<sigwaitinfo>(2)."
msgstr ""
+#. commit 1ca39ab9d21ac93f94b9e3eb364ea9a5cf2aba06
#. type: Plain text
-#: build/C/man7/signal.7:830
+#: build/C/man7/signal.7:864
+msgid "Linux 3.7 and earlier: B<read>(2) from an B<inotify>(7) file descriptor."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man7/signal.7:870
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:834
+#: build/C/man7/signal.7:874
msgid "Linux 2.6.8 and earlier: B<msgrcv>(2), B<msgsnd>(2)."
msgstr ""
#. type: Plain text
-#: build/C/man7/signal.7:837
+#: build/C/man7/signal.7:877
msgid "Linux 2.4 and earlier: B<nanosleep>(2)."
msgstr ""
#. signal 29 is
#. .BR SIGLOST .
#. type: Plain text
-#: build/C/man7/signal.7:850
+#: build/C/man7/signal.7:890
msgid "POSIX.1, except as noted."
msgstr ""
#. type: Plain text
-#: build/C/man7/signal.7:884
+#: build/C/man7/signal.7:925
msgid ""
"B<kill>(1), B<getrlimit>(2), B<kill>(2), B<killpg>(2), "
"B<restart_syscall>(2), B<rt_sigqueueinfo>(2), B<setitimer>(2), "
"B<setrlimit>(2), B<sgetmask>(2), B<sigaction>(2), B<sigaltstack>(2), "
"B<signal>(2), B<signalfd>(2), B<sigpending>(2), B<sigprocmask>(2), "
-"B<sigsuspend>(2), B<sigwaitinfo>(2), B<abort>(3), B<bsd_signal>(3), "
-"B<longjmp>(3), B<raise>(3), B<pthread_sigqueue>(3), B<sigqueue>(3), "
-"B<sigset>(3), B<sigsetops>(3), B<sigvec>(3), B<sigwait>(3), B<strsignal>(3), "
-"B<sysv_signal>(3), B<core>(5), B<proc>(5), B<pthreads>(7), B<sigevent>(7)"
+"B<sigreturn>(2), B<sigsuspend>(2), B<sigwaitinfo>(2), B<abort>(3), "
+"B<bsd_signal>(3), B<longjmp>(3), B<raise>(3), B<pthread_sigqueue>(3), "
+"B<sigqueue>(3), B<sigset>(3), B<sigsetops>(3), B<sigvec>(3), B<sigwait>(3), "
+"B<strsignal>(3), B<sysv_signal>(3), B<core>(5), B<proc>(5), B<pthreads>(7), "
+"B<sigevent>(7)"
msgstr ""
#. type: TH
msgid "SIGNALFD"
msgstr ""
-#. type: TH
-#: build/C/man2/signalfd.2:20
-#, no-wrap
-msgid "2009-01-13"
-msgstr ""
-
#. type: Plain text
#: build/C/man2/signalfd.2:23
msgid "signalfd - create a file descriptor for accepting signals"
#: 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>():"
+"I<flags> to change the behavior of B<signalfd>():"
msgstr ""
#. type: TP
#. 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
+#. in the signalfd_siginfo structure. This needs to be documented.
#. type: Plain text
#: build/C/man2/signalfd.2:198
#, no-wrap
msgstr ""
#. type: SS
-#: build/C/man2/signalfd.2:221 build/C/man2/timerfd_create.2:269
+#: build/C/man2/signalfd.2:221 build/C/man2/timerfd_create.2:276
#, no-wrap
msgid "fork(2) semantics"
msgstr ""
msgstr ""
#. type: SS
-#: build/C/man2/signalfd.2:229 build/C/man2/timerfd_create.2:281
+#: build/C/man2/signalfd.2:229 build/C/man2/timerfd_create.2:288
#, no-wrap
msgid "execve(2) semantics"
msgstr ""
msgstr ""
#. type: Plain text
-#: build/C/man2/signalfd.2:286 build/C/man2/timerfd_create.2:320
+#: build/C/man2/signalfd.2:286 build/C/man2/timerfd_create.2:327
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:289 build/C/man2/timerfd_create.2:323
+#: build/C/man2/signalfd.2:289 build/C/man2/timerfd_create.2:330
msgid "The per-process limit of open file descriptors has been reached."
msgstr ""
msgstr ""
#. type: Plain text
-#: 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 "
-"B<signalfd>() wrapper function does not include this argument, since it "
-"provides the required value for the underlying system call."
-msgstr ""
-
-#. type: Plain text
-#: build/C/man2/signalfd.2:336
+#: build/C/man2/signalfd.2:326
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:336
+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 "
+"B<signalfd>() wrapper function does not include this argument, since it "
+"provides the required value for the underlying system call."
+msgstr ""
+
+#. type: Plain text
#: build/C/man2/signalfd.2:352
msgid ""
"There are two underlying Linux system calls: B<signalfd>() and the more "
msgid "SIGPAUSE"
msgstr ""
-#. type: TH
-#: build/C/man3/sigpause.3:25
-#, no-wrap
-msgid "2014-01-07"
-msgstr ""
-
#. type: Plain text
#: build/C/man3/sigpause.3:28
msgid "sigpause - atomically release blocked signals and wait for interrupt"
"architecture."
msgstr ""
-#. type: Plain text
-#: build/C/man3/sigpause.3:87
-msgid "Libc4 and libc5 know only about the BSD version."
-msgstr ""
-
+#. Libc4 and libc5 know only about the BSD version.
+#
#
#. For the BSD version, one usually uses a zero
#. .I sigmask
msgid "SIGPROCMASK"
msgstr ""
+#. type: TH
+#: build/C/man2/sigprocmask.2:29 build/C/man2/sigsuspend.2:29
+#, no-wrap
+msgid "2013-04-19"
+msgstr ""
+
#. type: Plain text
#: build/C/man2/sigprocmask.2:32
msgid "sigprocmask - examine and change blocked signals"
msgstr ""
#. type: TH
-#: build/C/man2/sigreturn.2:29
+#: build/C/man2/sigreturn.2:30
#, no-wrap
msgid "SIGRETURN"
msgstr ""
#. type: Plain text
-#: build/C/man2/sigreturn.2:32
+#: build/C/man2/sigreturn.2:33
msgid "sigreturn - return from signal handler and cleanup stack frame"
msgstr ""
#. type: Plain text
-#: build/C/man2/sigreturn.2:34
-msgid "B<int sigreturn(unsigned long >I<__unused>B<);>"
+#: build/C/man2/sigreturn.2:35
+msgid "B<int sigreturn(...);>"
+msgstr ""
+
+#. See arch/x86/kernel/signal.c::__setup_frame() [in 3.17 source code]
+#. type: Plain text
+#: build/C/man2/sigreturn.2:45
+msgid ""
+"If the Linux kernel determines that an unblocked signal is pending for a "
+"process, then, at the next transition back to user mode in that process "
+"(e.g., upon return from a system call or when the process is rescheduled "
+"onto the CPU), it saves various pieces of process context (processor status "
+"word, registers, signal mask, and signal stack settings) into the "
+"user-space stack."
msgstr ""
#. type: Plain text
-#: build/C/man2/sigreturn.2:42
+#: build/C/man2/sigreturn.2:52
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 "
-"the signal handler, B<sigreturn>() will be called."
+"The kernel also arranges that, during the transition back to user mode, the "
+"signal handler is called, and that, upon return from the handler, control "
+"passes to a piece of user-space code commonly called the \"signal "
+"trampoline\". The signal trampoline code in turn calls B<sigreturn>()."
msgstr ""
#. type: Plain text
-#: build/C/man2/sigreturn.2:53
+#: build/C/man2/sigreturn.2:65
msgid ""
"This B<sigreturn>() call undoes everything that was done\\(emchanging the "
-"process's signal mask, switching stacks (see B<sigaltstack>(2))\\(emin order "
-"to invoke the signal handler: it restores the process's signal mask, "
-"switches stacks, and restores the process's context (registers, processor "
-"flags), so that the process directly resumes execution at the point where it "
-"was interrupted by the signal."
+"process's signal mask, switching signal stacks (see "
+"B<sigaltstack>(2))\\(emin order to invoke the signal handler. It restores "
+"the process's signal mask, switches stacks, and restores the process's "
+"context (processor flags and registers, including the stack pointer and "
+"instruction pointer), so that the process resumes execution at the point "
+"where it was interrupted by the signal."
msgstr ""
#. type: Plain text
-#: build/C/man2/sigreturn.2:56
+#: build/C/man2/sigreturn.2:68
msgid "B<sigreturn>() never returns."
msgstr ""
-#. type: SH
-#: build/C/man2/sigreturn.2:56
-#, no-wrap
-msgid "FILES"
+#. type: Plain text
+#: build/C/man2/sigreturn.2:74
+msgid ""
+"Many UNIX-type systems have a B<sigreturn>() system call or near "
+"equivalent. However, this call is not specified in POSIX, and details of "
+"its behavior vary across systems."
msgstr ""
#. type: Plain text
-#: build/C/man2/sigreturn.2:58
-msgid "/usr/src/linux/arch/i386/kernel/signal.c"
+#: build/C/man2/sigreturn.2:83
+msgid ""
+"B<sigreturn>() exists only to allow the implementation of signal handlers. "
+"It should B<never> be called directly. Details of the arguments (if any) "
+"passed to B<sigreturn>() vary depending on the architecture."
msgstr ""
+#. See, for example, sysdeps/unix/sysv/linux/i386/sigaction.c and
+#. sysdeps/unix/sysv/linux/x86_64/sigaction.c in the glibc (2.20) source.
#. type: Plain text
-#: build/C/man2/sigreturn.2:60
-msgid "/usr/src/linux/arch/alpha/kernel/entry.S"
+#: build/C/man2/sigreturn.2:106
+msgid ""
+"Once upon a time, UNIX systems placed the signal trampoline code onto the "
+"user stack. Nowadays, pages of the user stack are protected so as to "
+"disallow code execution. Thus, on contemporary Linux systems, depending on "
+"the architecture, the signal trampoline code lives either in the B<vdso>(7) "
+"or in the C library. In the latter case, the C library supplies the "
+"location of the trampoline code using the I<sa_restorer> field of the "
+"I<sigaction> structure that is passed to B<sigaction>(2), and sets the "
+"B<SA_RESTORER> flag in the I<sa_flags> field."
msgstr ""
#. type: Plain text
-#: build/C/man2/sigreturn.2:64
+#: build/C/man2/sigreturn.2:115
msgid ""
-"B<sigreturn>() is specific to Linux and should not be used in programs "
-"intended to be portable."
+"The saved process context information is placed in a I<ucontext_t> structure "
+"(see I<E<lt>sys/ucontext.hE<gt>>). That structure is visible within the "
+"signal handler as the third argument of a handler established with the "
+"B<SA_SIGINFO> flag."
msgstr ""
#. type: Plain text
-#: build/C/man2/sigreturn.2:74
+#: build/C/man2/sigreturn.2:123
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 "
-"use of the I<__unused> argument varies depending on the architecture."
+"On some other UNIX systems, the operation of the signal trampoline differs a "
+"little. In particular, on some systems, upon transitioning back to user "
+"mode, the kernel passes control to the trampoline (rather than the signal "
+"handler), and the trampoline code calls the signal handler (and then calls "
+"B<sigreturn>() once the handler returns)."
msgstr ""
#. type: Plain text
-#: build/C/man2/sigreturn.2:80
+#: build/C/man2/sigreturn.2:130
msgid ""
"B<kill>(2), B<restart_syscall>(2), B<sigaltstack>(2), B<signal>(2), "
-"B<signal>(7)"
+"B<getcontext>(3), B<signal>(7)"
msgstr ""
#. type: TH
msgstr ""
#. type: Plain text
-#: build/C/man3/sigset.3:232 build/C/man3/sigvec.3:265
+#: build/C/man3/sigset.3:232 build/C/man3/sigvec.3:272
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 "
msgid "SIGSETOPS"
msgstr ""
+#. type: TH
+#: build/C/man3/sigsetops.3:31
+#, no-wrap
+msgid "2014-04-14"
+msgstr ""
+
#. type: Plain text
#: build/C/man3/sigsetops.3:35
msgid ""
msgstr ""
#. type: Plain text
-#: build/C/man3/sigsetops.3:126
+#: 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. On error, these functions set "
-"I<errno> to indicate the cause."
+"I<signum> is not a member, and -1 on error."
msgstr ""
#. type: Plain text
-#: build/C/man3/sigsetops.3:131
+#: build/C/man3/sigsetops.3:127
+msgid "On error, these functions set I<errno> to indicate the cause of the error."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man3/sigsetops.3:132
msgid "I<sig> is not a valid signal."
msgstr ""
#. type: Plain text
-#: build/C/man3/sigsetops.3:144
+#: build/C/man3/sigsetops.3:145
msgid ""
"The B<sigemptyset>(), B<sigfillset>(), B<sigaddset>(), B<sigdelset>(), "
"B<sigismember>(), B<sigisemptyset>(), B<sigorset>(), and B<sigandset>() "
msgstr ""
#. type: SS
-#: build/C/man3/sigsetops.3:147
+#: build/C/man3/sigsetops.3:148
#, no-wrap
msgid "Glibc notes"
msgstr ""
#. type: Plain text
-#: build/C/man3/sigsetops.3:153
+#: build/C/man3/sigsetops.3:154
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: Plain text
-#: build/C/man3/sigsetops.3:160
+#: build/C/man3/sigsetops.3:161
#, no-wrap
msgid ""
"B<int sigisemptyset(const sigset_t *>I<set>B<);>\n"
msgstr ""
#. type: Plain text
-#: build/C/man3/sigsetops.3:166
+#: build/C/man3/sigsetops.3:167
msgid ""
"B<sigisemptyset>() returns 1 if I<set> contains no signals, and 0 "
"otherwise."
msgstr ""
#. type: Plain text
-#: build/C/man3/sigsetops.3:182
+#: build/C/man3/sigsetops.3:183
msgid ""
"B<sigorset>() places the union of the sets I<left> and I<right> in "
"I<dest>. B<sigandset>() places the intersection of the sets I<left> and "
msgstr ""
#. type: Plain text
-#: build/C/man3/sigsetops.3:185
+#: build/C/man3/sigsetops.3:186
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:190
+#: build/C/man3/sigsetops.3:191
msgid "B<sigaction>(2), B<sigpending>(2), B<sigprocmask>(2), B<sigsuspend>(2)"
msgstr ""
msgid "SIGVEC"
msgstr ""
-#. type: TH
-#: build/C/man3/sigvec.3:26
-#, no-wrap
-msgid "2014-05-28"
-msgstr ""
-
#. type: Plain text
#: build/C/man3/sigvec.3:29
msgid "sigvec, sigblock, sigsetmask, siggetmask, sigmask - BSD signal API"
msgstr ""
#. type: Plain text
-#: build/C/man3/sigvec.3:240
+#: build/C/man3/sigvec.3:241
+msgid ""
+"Starting with version 2.21, the GNU C library no longer exports the "
+"B<sigvec>() function as part of the ABI. (To ensure backward "
+"compatibility, the glibc symbol versioning scheme continues to export the "
+"interface to binaries linked against older versions of the library.)"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man3/sigvec.3:247
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:257
+#: build/C/man3/sigvec.3:264
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:275
+#: build/C/man3/sigvec.3:282
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)"
msgid "SIGWAITINFO"
msgstr ""
-#. type: TH
-#: build/C/man2/sigwaitinfo.2:25 build/C/man2/wait.2:49
-#, no-wrap
-msgid "2013-09-04"
-msgstr ""
-
#. type: Plain text
#: build/C/man2/sigwaitinfo.2:28
msgid "sigwaitinfo, sigtimedwait - synchronously wait for queued signals"
msgstr ""
#. type: Plain text
-#: build/C/man2/sigwaitinfo.2:182
+#: build/C/man2/sigwaitinfo.2:183
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:187
+#: build/C/man2/sigwaitinfo.2:188
msgid ""
"On Linux, B<sigwaitinfo>() is a library function implemented on top of "
"B<sigtimedwait>()."
msgstr ""
#. type: Plain text
-#: build/C/man2/sigwaitinfo.2:199
+#: build/C/man2/sigwaitinfo.2:201
+msgid ""
+"The raw B<sigtimedwait>() system call has a fifth argument, I<size_t "
+"sigsetsize>, which specifies the size in bytes of the I<set> argument. The "
+"glibc B<sigtimedwait>() wrapper function specifies this argument as a fixed "
+"value (equal to I<sizeof(sigset_t)>)."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/sigwaitinfo.2:213
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/man2/timer_create.2:31
+#: build/C/man2/timer_create.2:33
#, no-wrap
msgid "TIMER_CREATE"
msgstr ""
-#. type: TH
-#: build/C/man2/timer_create.2:31
-#, no-wrap
-msgid "2014-01-20"
-msgstr ""
-
#. type: Plain text
-#: build/C/man2/timer_create.2:34
+#: build/C/man2/timer_create.2:36
msgid "timer_create - create a POSIX per-process timer"
msgstr ""
#. type: Plain text
-#: build/C/man2/timer_create.2:38
+#: build/C/man2/timer_create.2:40
#, no-wrap
msgid ""
"B<#include E<lt>signal.hE<gt>>\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/timer_create.2:41
+#: build/C/man2/timer_create.2:43
#, 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:44 build/C/man2/timer_delete.2:37 build/C/man2/timer_getoverrun.2:37 build/C/man2/timer_settime.2:41
+#: build/C/man2/timer_create.2:46 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:52
+#: build/C/man2/timer_create.2:54
msgid "B<timer_create>(): _POSIX_C_SOURCE\\ E<gt>=\\ 199309L"
msgstr ""
#. type: Plain text
-#: build/C/man2/timer_create.2:60
+#: build/C/man2/timer_create.2:62
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:65
+#: build/C/man2/timer_create.2:67
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:65
+#: build/C/man2/timer_create.2:67
#, no-wrap
msgid "B<CLOCK_REALTIME>"
msgstr ""
#. type: Plain text
-#: build/C/man2/timer_create.2:68
+#: build/C/man2/timer_create.2:70
msgid "A settable system-wide real-time clock."
msgstr ""
#. type: TP
-#: build/C/man2/timer_create.2:68
+#: build/C/man2/timer_create.2:70
#, 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:75
+#: build/C/man2/timer_create.2:77
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:75
+#: build/C/man2/timer_create.2:77
#, no-wrap
msgid "B<CLOCK_PROCESS_CPUTIME_ID> (since Linux 2.6.12)"
msgstr ""
#. type: Plain text
-#: build/C/man2/timer_create.2:79
+#: build/C/man2/timer_create.2:81
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:79
+#: build/C/man2/timer_create.2:81
#, 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:85
+#: build/C/man2/timer_create.2:87
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:94
+#: build/C/man2/timer_create.2:96
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:103
+#: build/C/man2/timer_create.2:105
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:107
+#: build/C/man2/timer_create.2:109
msgid "The I<sevp.sigev_notify> field can have the following values:"
msgstr ""
#. type: Plain text
-#: build/C/man2/timer_create.2:112
+#: build/C/man2/timer_create.2:114
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:130
+#: build/C/man2/timer_create.2:132
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:138
+#: build/C/man2/timer_create.2:140
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:152
+#: build/C/man2/timer_create.2:154
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:167
+#: build/C/man2/timer_create.2:169
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:175
+#: build/C/man2/timer_create.2:177
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:179
+#: build/C/man2/timer_create.2:181
msgid "Temporary error during kernel allocation of timer structures."
msgstr ""
#. type: Plain text
-#: build/C/man2/timer_create.2:187
+#: build/C/man2/timer_create.2:189
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:191
+#: build/C/man2/timer_create.2:193
msgid "Could not allocate memory."
msgstr ""
#. type: Plain text
-#: 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_create.2:195 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:198
+#: build/C/man2/timer_create.2:200
msgid "A program may create multiple interval timers using B<timer_create>()."
msgstr ""
#. type: Plain text
-#: build/C/man2/timer_create.2:203
+#: build/C/man2/timer_create.2:205
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:211
+#: build/C/man2/timer_create.2:213
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:216
+#: build/C/man2/timer_create.2:218
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:219
+#: build/C/man2/timer_create.2:221
msgid "B<timer_create>(): Create a timer."
msgstr ""
#. type: Plain text
-#: build/C/man2/timer_create.2:222
+#: build/C/man2/timer_create.2:224
msgid "B<timer_settime>(2): Arm (start) or disarm (stop) a timer."
msgstr ""
#. type: Plain text
-#: build/C/man2/timer_create.2:226
+#: build/C/man2/timer_create.2:228
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:229
+#: build/C/man2/timer_create.2:231
msgid ""
"B<timer_getoverrun>(2): Return the overrun count for the last timer "
"expiration."
msgstr ""
#. type: Plain text
-#: build/C/man2/timer_create.2:232
+#: build/C/man2/timer_create.2:234
msgid "B<timer_delete>(2): Disarm and delete a timer."
msgstr ""
#. type: Plain text
-#: build/C/man2/timer_create.2:235
+#: build/C/man2/timer_create.2:243
+msgid ""
+"Since Linux 3.10, the I</proc/[pid]/timers> file can be used to list the "
+"POSIX timers for the process with PID I<pid>. See B<proc>(5) for further "
+"information."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/timer_create.2:246
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:239
+#: build/C/man2/timer_create.2:250
msgid ""
"The functionality for B<SIGEV_THREAD> is implemented within glibc, rather "
"than the kernel."
#. 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:245
+#: build/C/man2/timer_create.2:256
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:253
+#: build/C/man2/timer_create.2:264
msgid ""
"The POSIX timers system calls first appeared in Linux 2.6. Prior to this, "
"glibc provided an incomplete user-space implementation (B<CLOCK_REALTIME> "
msgstr ""
#. type: Plain text
-#: build/C/man2/timer_create.2:261
-msgid ""
-"Since Linux 3.10, the I</proc/[pid]/timers> file can be used to list the "
-"POSIX timers for the process with PID I<pid>. See B<proc>(5) for further "
-"information."
-msgstr ""
-
-#. type: Plain text
-#: build/C/man2/timer_create.2:273
+#: build/C/man2/timer_create.2:276
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:278
+#: build/C/man2/timer_create.2:281
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:290
+#: build/C/man2/timer_create.2:293
#, no-wrap
msgid ""
"$ B<./a.out 1 100>\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/timer_create.2:300
+#: build/C/man2/timer_create.2:303
#, no-wrap
msgid ""
"#include E<lt>stdlib.hE<gt>\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/timer_create.2:303
+#: build/C/man2/timer_create.2:306
#, no-wrap
msgid ""
"#define CLOCKID CLOCK_REALTIME\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/timer_create.2:306
+#: build/C/man2/timer_create.2:309
#, no-wrap
msgid ""
"#define errExit(msg) do { perror(msg); exit(EXIT_FAILURE); \\e\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/timer_create.2:312
+#: build/C/man2/timer_create.2:315
#, no-wrap
msgid ""
"static void\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/timer_create.2:314
+#: build/C/man2/timer_create.2:317
#, no-wrap
msgid " tidp = si-E<gt>si_value.sival_ptr;\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/timer_create.2:317
+#: build/C/man2/timer_create.2:320
#, 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:324
+#: build/C/man2/timer_create.2:327
#, no-wrap
msgid ""
" or = timer_getoverrun(*tidp);\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/timer_create.2:331
+#: build/C/man2/timer_create.2:334
#, no-wrap
msgid ""
"static void\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/timer_create.2:336
+#: build/C/man2/timer_create.2:339
#, no-wrap
msgid ""
" printf(\"Caught signal %d\\en\", sig);\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/timer_create.2:346
+#: build/C/man2/timer_create.2:349
#, no-wrap
msgid ""
"int\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/timer_create.2:352
+#: build/C/man2/timer_create.2:355
#, no-wrap
msgid ""
" if (argc != 3) {\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/timer_create.2:354
+#: build/C/man2/timer_create.2:357
#, no-wrap
msgid " /* Establish handler for timer signal */\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/timer_create.2:361
+#: build/C/man2/timer_create.2:364
#, no-wrap
msgid ""
" printf(\"Establishing handler for signal %d\\en\", SIG);\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/timer_create.2:363
+#: build/C/man2/timer_create.2:366
#, no-wrap
msgid " /* Block timer signal temporarily */\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/timer_create.2:369
+#: build/C/man2/timer_create.2:372
#, no-wrap
msgid ""
" printf(\"Blocking signal %d\\en\", SIG);\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/timer_create.2:371
+#: build/C/man2/timer_create.2:374
#, no-wrap
msgid " /* Create the timer */\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/timer_create.2:377
+#: build/C/man2/timer_create.2:380
#, no-wrap
msgid ""
" sev.sigev_notify = SIGEV_SIGNAL;\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/timer_create.2:379
+#: build/C/man2/timer_create.2:382
#, no-wrap
msgid " printf(\"timer ID is 0x%lx\\en\", (long) timerid);\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/timer_create.2:381
+#: build/C/man2/timer_create.2:384
#, no-wrap
msgid " /* Start the timer */\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/timer_create.2:387
+#: build/C/man2/timer_create.2:390
#, no-wrap
msgid ""
" freq_nanosecs = atoll(argv[2]);\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/timer_create.2:390
+#: build/C/man2/timer_create.2:393
#, no-wrap
msgid ""
" if (timer_settime(timerid, 0, &its, NULL) == -1)\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/timer_create.2:393
+#: build/C/man2/timer_create.2:396
#, no-wrap
msgid ""
" /* Sleep for a while; meanwhile, the timer may expire\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/timer_create.2:396
+#: build/C/man2/timer_create.2:399
#, no-wrap
msgid ""
" printf(\"Sleeping for %d seconds\\en\", atoi(argv[1]));\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/timer_create.2:399
+#: build/C/man2/timer_create.2:402
#, no-wrap
msgid ""
" /* Unlock the timer signal, so that timer notification\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/timer_create.2:403
+#: build/C/man2/timer_create.2:406
#, no-wrap
msgid ""
" printf(\"Unblocking signal %d\\en\", SIG);\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/timer_create.2:406 build/C/man2/timerfd_create.2:540
+#: build/C/man2/timer_create.2:409 build/C/man2/timerfd_create.2:547
#, no-wrap
msgid ""
" exit(EXIT_SUCCESS);\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/timer_create.2:422
+#: build/C/man2/timer_create.2:425
msgid ""
"B<clock_gettime>(2), B<setitimer>(2), B<timer_delete>(2), "
"B<timer_getoverrun>(2), B<timer_settime>(2), B<timerfd_create>(2), "
msgid ""
"B<int timer_settime(timer_t >I<timerid>B<, int >I<flags>B<,>\n"
"B< const struct itimerspec *>I<new_value>B<,>\n"
-"B< struct itimerspec * >I<old_value>B<);>\n"
+"B< struct itimerspec *>I<old_value>B<);>\n"
"B<int timer_gettime(timer_t >I<timerid>B<, struct itimerspec "
"*>I<curr_value>B<);>\n"
msgstr ""
msgstr ""
#. type: Plain text
-#: build/C/man2/timer_settime.2:70 build/C/man2/timerfd_create.2:128
+#: build/C/man2/timer_settime.2:70 build/C/man2/timerfd_create.2:135
#, no-wrap
msgid ""
"struct timespec {\n"
msgstr ""
#. type: TH
-#: build/C/man2/timerfd_create.2:21
+#: build/C/man2/timerfd_create.2:22
#, no-wrap
msgid "TIMERFD_CREATE"
msgstr ""
#. type: TH
-#: build/C/man2/timerfd_create.2:21
+#: build/C/man2/timerfd_create.2:22
#, no-wrap
msgid "2011-09-14"
msgstr ""
#. type: Plain text
-#: build/C/man2/timerfd_create.2:25
+#: build/C/man2/timerfd_create.2:26
msgid ""
"timerfd_create, timerfd_settime, timerfd_gettime - timers that notify via "
"file descriptors"
msgstr ""
#. type: Plain text
-#: build/C/man2/timerfd_create.2:28
+#: build/C/man2/timerfd_create.2:29
#, no-wrap
msgid "B<#include E<lt>sys/timerfd.hE<gt>>\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/timerfd_create.2:30
+#: build/C/man2/timerfd_create.2:31
#, 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:34
+#: build/C/man2/timerfd_create.2:35
#, 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:36
+#: build/C/man2/timerfd_create.2:37
#, 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:49
+#: build/C/man2/timerfd_create.2:50
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:61
+#: build/C/man2/timerfd_create.2:62
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:61
+#: build/C/man2/timerfd_create.2:62
#, no-wrap
msgid "timerfd_create()"
msgstr ""
+#. FIXME
+#. Additional clocks are now supported:
+#. CLOCK_REALTIME_ALARM and CLOCK_BOOTTIME_ALARM
+#. Since Linux 3.11, commit 11ffa9d6065f344a9bd769a2452f26f2f671e5f8
+#. CLOCK_BOOTTIME
+#. Since Linux 3.15, commit 4a2378a943f09907fb1ae35c15de917f60289c14
#. type: Plain text
-#: build/C/man2/timerfd_create.2:80
+#: build/C/man2/timerfd_create.2:87
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:85
+#: build/C/man2/timerfd_create.2:92
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:85
+#: build/C/man2/timerfd_create.2:92
#, no-wrap
msgid "B<TFD_NONBLOCK>"
msgstr ""
#. type: TP
-#: build/C/man2/timerfd_create.2:93
+#: build/C/man2/timerfd_create.2:100
#, no-wrap
msgid "B<TFD_CLOEXEC>"
msgstr ""
#. type: Plain text
-#: build/C/man2/timerfd_create.2:107
+#: build/C/man2/timerfd_create.2:114
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:107
+#: build/C/man2/timerfd_create.2:114
#, no-wrap
msgid "timerfd_settime()"
msgstr ""
#. type: Plain text
-#: build/C/man2/timerfd_create.2:112
+#: build/C/man2/timerfd_create.2:119
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:121
+#: build/C/man2/timerfd_create.2:128
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:133
+#: build/C/man2/timerfd_create.2:140
#, no-wrap
msgid ""
"struct itimerspec {\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/timerfd_create.2:145
+#: build/C/man2/timerfd_create.2:152
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:154
+#: build/C/man2/timerfd_create.2:161
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:170
+#: build/C/man2/timerfd_create.2:177
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:181
+#: build/C/man2/timerfd_create.2:188
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:181
+#: build/C/man2/timerfd_create.2:188
#, no-wrap
msgid "timerfd_gettime()"
msgstr ""
#. type: Plain text
-#: build/C/man2/timerfd_create.2:190
+#: build/C/man2/timerfd_create.2:197
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:200
+#: build/C/man2/timerfd_create.2:207
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:207
+#: build/C/man2/timerfd_create.2:214
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:207
+#: build/C/man2/timerfd_create.2:214
#, no-wrap
msgid "Operating on a timer file descriptor"
msgstr ""
#. type: Plain text
-#: build/C/man2/timerfd_create.2:211
+#: build/C/man2/timerfd_create.2:218
msgid ""
"The file descriptor returned by B<timerfd_create>() supports the following "
"operations:"
msgstr ""
#. type: Plain text
-#: build/C/man2/timerfd_create.2:225
+#: build/C/man2/timerfd_create.2:232
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:238
+#: build/C/man2/timerfd_create.2:245
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:244
+#: build/C/man2/timerfd_create.2:251
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:255
+#: build/C/man2/timerfd_create.2:262
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:262
+#: build/C/man2/timerfd_create.2:269
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:269
+#: build/C/man2/timerfd_create.2:276
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:281
+#: build/C/man2/timerfd_create.2:288
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:287
+#: build/C/man2/timerfd_create.2:294
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:294
+#: build/C/man2/timerfd_create.2:301
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:302
+#: build/C/man2/timerfd_create.2:309
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:305
+#: build/C/man2/timerfd_create.2:312
msgid "B<timerfd_create>() can fail with the following errors:"
msgstr ""
#. type: Plain text
-#: build/C/man2/timerfd_create.2:313
+#: build/C/man2/timerfd_create.2:320
msgid "The I<clockid> argument is neither B<CLOCK_MONOTONIC> nor B<CLOCK_REALTIME>;"
msgstr ""
#. type: Plain text
-#: build/C/man2/timerfd_create.2:333
+#: build/C/man2/timerfd_create.2:340
msgid "There was insufficient kernel memory to create the timer."
msgstr ""
#. type: Plain text
-#: build/C/man2/timerfd_create.2:338
+#: build/C/man2/timerfd_create.2:345
msgid ""
"B<timerfd_settime>() and B<timerfd_gettime>() can fail with the following "
"errors:"
msgstr ""
#. type: Plain text
-#: build/C/man2/timerfd_create.2:342
+#: build/C/man2/timerfd_create.2:349
msgid "I<fd> is not a valid file descriptor."
msgstr ""
#. type: Plain text
-#: build/C/man2/timerfd_create.2:353
+#: build/C/man2/timerfd_create.2:360
msgid "I<fd> is not a valid timerfd file descriptor."
msgstr ""
#. type: Plain text
-#: build/C/man2/timerfd_create.2:356
+#: build/C/man2/timerfd_create.2:363
msgid "B<timerfd_settime>() can also fail with the following errors:"
msgstr ""
#. type: Plain text
-#: build/C/man2/timerfd_create.2:362
+#: build/C/man2/timerfd_create.2:369
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:368
+#: build/C/man2/timerfd_create.2:375
msgid "I<flags> is invalid."
msgstr ""
#. type: Plain text
-#: build/C/man2/timerfd_create.2:371
+#: build/C/man2/timerfd_create.2:378
msgid ""
"These system calls are available on Linux since kernel 2.6.25. Library "
"support is provided by glibc since version 2.8."
#. 2.6.29
#. type: Plain text
-#: build/C/man2/timerfd_create.2:379
+#: build/C/man2/timerfd_create.2:386
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:388
+#: build/C/man2/timerfd_create.2:395
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:390 build/C/man2/wait.2:570
+#: build/C/man2/timerfd_create.2:397 build/C/man2/wait.2:571
msgid "The following shell session demonstrates the use of the program:"
msgstr ""
#. type: Plain text
-#: build/C/man2/timerfd_create.2:405
+#: build/C/man2/timerfd_create.2:412
#, no-wrap
msgid ""
"$B< a.out 3 1 100>\n"
#
#. ////////////////////////////////////////////////////////////
#. type: Plain text
-#: build/C/man2/timerfd_create.2:454
+#: build/C/man2/timerfd_create.2:461
#, no-wrap
msgid ""
"#include E<lt>sys/timerfd.hE<gt>\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/timerfd_create.2:457
+#: build/C/man2/timerfd_create.2:464
#, no-wrap
msgid ""
"#define handle_error(msg) \\e\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/timerfd_create.2:465
+#: build/C/man2/timerfd_create.2:472
#, no-wrap
msgid ""
"static void\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/timerfd_create.2:471
+#: build/C/man2/timerfd_create.2:478
#, no-wrap
msgid ""
" if (first_call) {\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/timerfd_create.2:474
+#: build/C/man2/timerfd_create.2:481
#, no-wrap
msgid ""
" if (clock_gettime(CLOCK_MONOTONIC, &curr) == -1)\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/timerfd_create.2:483
+#: build/C/man2/timerfd_create.2:490
#, no-wrap
msgid ""
" secs = curr.tv_sec - start.tv_sec;\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/timerfd_create.2:492
+#: build/C/man2/timerfd_create.2:499
#, no-wrap
msgid ""
"int\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/timerfd_create.2:498
+#: build/C/man2/timerfd_create.2:505
#, no-wrap
msgid ""
" if ((argc != 2) && (argc != 4)) {\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/timerfd_create.2:501
+#: build/C/man2/timerfd_create.2:508
#, no-wrap
msgid ""
" if (clock_gettime(CLOCK_REALTIME, &now) == -1)\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/timerfd_create.2:504
+#: build/C/man2/timerfd_create.2:511
#, no-wrap
msgid ""
" /* Create a CLOCK_REALTIME absolute timer with initial\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/timerfd_create.2:515
+#: build/C/man2/timerfd_create.2:522
#, 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:519
+#: build/C/man2/timerfd_create.2:526
#, no-wrap
msgid ""
" fd = timerfd_create(CLOCK_REALTIME, 0);\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/timerfd_create.2:522
+#: build/C/man2/timerfd_create.2:529
#, 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:525
+#: build/C/man2/timerfd_create.2:532
#, no-wrap
msgid ""
" print_elapsed_time();\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/timerfd_create.2:530
+#: build/C/man2/timerfd_create.2:537
#, no-wrap
msgid ""
" for (tot_exp = 0; tot_exp E<lt> max_exp;) {\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/timerfd_create.2:537
+#: build/C/man2/timerfd_create.2:544
#, no-wrap
msgid ""
" tot_exp += exp;\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/timerfd_create.2:553
+#: build/C/man2/timerfd_create.2:560
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), "
"will be delivered to an arbitrary thread within that process.)"
msgstr ""
-#. FIXME: Maybe say something about the following:
+#. 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,
msgstr ""
#. type: Plain text
-#: 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:95
+#: build/C/man2/tkill.2:88
msgid ""
"These are the raw system call interfaces, meant for internal thread library "
"use."
msgstr ""
#. type: Plain text
-#: build/C/man2/tkill.2:103
+#: build/C/man2/tkill.2:96
msgid "An invalid thread ID, thread group ID, or signal was specified."
msgstr ""
#. type: Plain text
-#: build/C/man2/tkill.2:108
+#: build/C/man2/tkill.2:101
msgid "Permission denied. For the required permissions, see B<kill>(2)."
msgstr ""
#. type: Plain text
-#: build/C/man2/tkill.2:111
+#: build/C/man2/tkill.2:104
msgid "No process with the specified thread ID (and thread group ID) exists."
msgstr ""
#. type: Plain text
-#: build/C/man2/tkill.2:116
+#: build/C/man2/tkill.2:109
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:122
+#: build/C/man2/tkill.2:115
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:128
+#: build/C/man2/tkill.2:121
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:131
+#: build/C/man2/tkill.2:124
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:136
+#: build/C/man2/tkill.2:129
msgid "B<clone>(2), B<gettid>(2), B<kill>(2), B<rt_sigqueueinfo>(2)"
msgstr ""
"returned. On error, -1 is returned."
msgstr ""
-#. FIXME: As reported by Vegard Nossum, if infop is NULL, then waitid()
+#. FIXME As reported by Vegard Nossum, if infop is NULL, then waitid()
#. returns the PID of the child. Either this is a bug, or it is intended
#. 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:384
+#: build/C/man2/wait.2:381
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 "
-"returned. Each of these calls sets I<errno> to an appropriate value in the "
-"case of an error."
+"returned."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/wait.2:385
+msgid ""
+"Each of these calls sets I<errno> to an appropriate value in the case of an "
+"error."
msgstr ""
#. type: TP
-#: build/C/man2/wait.2:385 build/C/man2/wait.2:390
+#: build/C/man2/wait.2:386 build/C/man2/wait.2:391
#, no-wrap
msgid "B<ECHILD>"
msgstr ""
#. type: Plain text
-#: build/C/man2/wait.2:390
+#: build/C/man2/wait.2:391
msgid ""
"(for B<wait>()) The calling process does not have any unwaited-for "
"children."
msgstr ""
#. type: Plain text
-#: build/C/man2/wait.2:410
+#: build/C/man2/wait.2:411
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:417
+#: build/C/man2/wait.2:418
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:422
+#: build/C/man2/wait.2:423
msgid "The I<options> argument was invalid."
msgstr ""
#. type: Plain text
-#: build/C/man2/wait.2:437
+#: build/C/man2/wait.2:438
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 "
"long as a zombie is not removed from the system via a wait, it will consume "
"a slot in the kernel process table, and if this table fills, it will not be "
"possible to create further processes. If a parent process terminates, then "
-"its \"zombie\" children (if any) are adopted by B<init>(8), which "
+"its \"zombie\" children (if any) are adopted by B<init>(1), which "
"automatically performs a wait to remove the zombies."
msgstr ""
#. type: Plain text
-#: build/C/man2/wait.2:466
+#: build/C/man2/wait.2:467
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:479
+#: build/C/man2/wait.2:480
msgid ""
"Linux 2.6 conforms to the POSIX requirements. However, Linux 2.4 (and "
"earlier) does not: if a B<wait>() or B<waitpid>() call is made while "
msgstr ""
#. type: Plain text
-#: build/C/man2/wait.2:495
+#: build/C/man2/wait.2:496
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:502
+#: build/C/man2/wait.2:503
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:502
+#: build/C/man2/wait.2:503
#, no-wrap
msgid "B<__WCLONE>"
msgstr ""
#. since 0.99pl10
#. type: Plain text
-#: build/C/man2/wait.2:513
+#: build/C/man2/wait.2:514
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:513
+#: build/C/man2/wait.2:514
#, no-wrap
msgid "B<__WALL> (since Linux 2.4)"
msgstr ""
#. since patch-2.3.48
#. type: Plain text
-#: build/C/man2/wait.2:518
+#: build/C/man2/wait.2:519
msgid "Wait for all children, regardless of type (\"clone\" or \"non-clone\")."
msgstr ""
#. type: TP
-#: build/C/man2/wait.2:518
+#: build/C/man2/wait.2:519
#, no-wrap
msgid "B<__WNOTHREAD> (since Linux 2.4)"
msgstr ""
#. since patch-2.4.0-test8
#. type: Plain text
-#: build/C/man2/wait.2:524
+#: build/C/man2/wait.2:525
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
+#: build/C/man2/wait.2:537
msgid ""
-"The raw B<waitid>() system call takes a fith argument, of type I<struct "
+"The raw B<waitid>() system call takes a fifth argument, of type I<struct "
"rusage\\ *>. If this argument is non-NULL, then it is used to return "
"resource usage information about the child, in the same manner as "
"B<wait4>(2). See B<getrusage>(2) for details."
msgstr ""
#. type: Plain text
-#: build/C/man2/wait.2:551
+#: build/C/man2/wait.2:552
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 "
#. fork.2 refers to this example program.
#. type: Plain text
-#: build/C/man2/wait.2:568
+#: build/C/man2/wait.2:569
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:584
+#: build/C/man2/wait.2:585
#, no-wrap
msgid ""
"$B< ./a.out &>\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/wait.2:593
+#: build/C/man2/wait.2:594
#, no-wrap
msgid ""
"#include E<lt>sys/wait.hE<gt>\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/wait.2:599
+#: build/C/man2/wait.2:600
#, no-wrap
msgid ""
"int\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/wait.2:605
+#: build/C/man2/wait.2:606
#, no-wrap
msgid ""
" cpid = fork();\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/wait.2:611
+#: build/C/man2/wait.2:612
#, no-wrap
msgid ""
" if (cpid == 0) { /* Code executed by child */\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/wait.2:619
+#: build/C/man2/wait.2:620
#, no-wrap
msgid ""
" } else { /* Code executed by parent */\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/wait.2:633
+#: build/C/man2/wait.2:634
#, no-wrap
msgid ""
" if (WIFEXITED(status)) {\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/wait.2:646
+#: build/C/man2/wait.2:647
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), "