summaryrefslogtreecommitdiffstats
path: root/templates/man2/timerfd_create.2.pot
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-15 19:43:11 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-15 19:43:11 +0000
commitfc22b3d6507c6745911b9dfcc68f1e665ae13dbc (patch)
treece1e3bce06471410239a6f41282e328770aa404a /templates/man2/timerfd_create.2.pot
parentInitial commit. (diff)
downloadmanpages-l10n-fc22b3d6507c6745911b9dfcc68f1e665ae13dbc.tar.xz
manpages-l10n-fc22b3d6507c6745911b9dfcc68f1e665ae13dbc.zip
Adding upstream version 4.22.0.upstream/4.22.0
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'templates/man2/timerfd_create.2.pot')
-rw-r--r--templates/man2/timerfd_create.2.pot1428
1 files changed, 1428 insertions, 0 deletions
diff --git a/templates/man2/timerfd_create.2.pot b/templates/man2/timerfd_create.2.pot
new file mode 100644
index 00000000..16cc3a74
--- /dev/null
+++ b/templates/man2/timerfd_create.2.pot
@@ -0,0 +1,1428 @@
+# SOME DESCRIPTIVE TITLE
+# Copyright (C) YEAR Free Software Foundation, Inc.
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"POT-Creation-Date: 2024-03-01 17:12+0100\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. type: TH
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "timerfd_create"
+msgstr ""
+
+#. type: TH
+#: archlinux fedora-40 fedora-rawhide mageia-cauldron
+#, no-wrap
+msgid "2023-10-31"
+msgstr ""
+
+#. type: TH
+#: archlinux fedora-40 fedora-rawhide mageia-cauldron
+#, no-wrap
+msgid "Linux man-pages 6.06"
+msgstr ""
+
+#. type: SH
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "NAME"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"timerfd_create, timerfd_settime, timerfd_gettime - timers that notify via "
+"file descriptors"
+msgstr ""
+
+#. type: SH
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "LIBRARY"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid "Standard C library (I<libc>, I<-lc>)"
+msgstr ""
+
+#. type: SH
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "SYNOPSIS"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<#include E<lt>sys/timerfd.hE<gt>>\n"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<int timerfd_create(int >I<clockid>B<, int >I<flags>B<);>\n"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid ""
+"B<int timerfd_settime(int >I<fd>B<, int >I<flags>B<,>\n"
+"B< const struct itimerspec *>I<new_value>B<,>\n"
+"B< struct itimerspec *_Nullable >I<old_value>B<);>\n"
+"B<int timerfd_gettime(int >I<fd>B<, struct itimerspec *>I<curr_value>B<);>\n"
+msgstr ""
+
+#. type: SH
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "DESCRIPTION"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"These system calls create and operate on a timer that delivers timer "
+"expiration notifications via a file descriptor. They provide an alternative "
+"to the use of B<setitimer>(2) or B<timer_create>(2), with the advantage "
+"that the file descriptor may be monitored by B<select>(2), B<poll>(2), and "
+"B<epoll>(7)."
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+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 "
+"no analog of B<timer_getoverrun>(2), since that functionality is provided by "
+"B<read>(2), as described below.)"
+msgstr ""
+
+#. type: SS
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "timerfd_create()"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+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 "
+"clock that is used to mark the progress of the timer, and must be one of the "
+"following:"
+msgstr ""
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<CLOCK_REALTIME>"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid "A settable system-wide real-time clock."
+msgstr ""
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<CLOCK_MONOTONIC>"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+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
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<CLOCK_BOOTTIME> (Since Linux 3.15)"
+msgstr ""
+
+#. commit 4a2378a943f09907fb1ae35c15de917f60289c14
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"Like B<CLOCK_MONOTONIC>, this is a monotonically increasing clock. However, "
+"whereas the B<CLOCK_MONOTONIC> clock does not measure the time while a "
+"system is suspended, the B<CLOCK_BOOTTIME> clock does include the time "
+"during which the system is suspended. This is useful for applications that "
+"need to be suspend-aware. B<CLOCK_REALTIME> is not suitable for such "
+"applications, since that clock is affected by discontinuous changes to the "
+"system clock."
+msgstr ""
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<CLOCK_REALTIME_ALARM> (since Linux 3.11)"
+msgstr ""
+
+#. commit 11ffa9d6065f344a9bd769a2452f26f2f671e5f8
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"This clock is like B<CLOCK_REALTIME>, but will wake the system if it is "
+"suspended. The caller must have the B<CAP_WAKE_ALARM> capability in order "
+"to set a timer against this clock."
+msgstr ""
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<CLOCK_BOOTTIME_ALARM> (since Linux 3.11)"
+msgstr ""
+
+#. commit 11ffa9d6065f344a9bd769a2452f26f2f671e5f8
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"This clock is like B<CLOCK_BOOTTIME>, but will wake the system if it is "
+"suspended. The caller must have the B<CAP_WAKE_ALARM> capability in order "
+"to set a timer against this clock."
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid "See B<clock_getres>(2) for some further details on the above clocks."
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"The current value of each of these clocks can be retrieved using "
+"B<clock_gettime>(2)."
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+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
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<TFD_NONBLOCK>"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"Set the B<O_NONBLOCK> file status flag on the open file description (see "
+"B<open>(2)) referred to by the new file descriptor. Using this flag saves "
+"extra calls to B<fcntl>(2) to achieve the same result."
+msgstr ""
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<TFD_CLOEXEC>"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+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 "
+"may be useful."
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"In Linux versions up to and including 2.6.26, I<flags> must be specified as "
+"zero."
+msgstr ""
+
+#. type: SS
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "timerfd_settime()"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"B<timerfd_settime>() arms (starts) or disarms (stops) the timer referred "
+"to by the file descriptor I<fd>."
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"The I<new_value> argument specifies the initial expiration and interval for "
+"the timer. The I<itimerspec> structure used for this argument is described "
+"in B<itimerspec>(3type)."
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+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 "
+"nonzero value arms the timer. Setting both fields of I<new_value.it_value> "
+"to zero disarms the timer."
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+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 "
+"expirations after the initial expiration. If both fields of I<new_value."
+"it_interval> are zero, the timer expires just once, at the time specified by "
+"I<new_value.it_value>."
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"By default, the initial expiration time specified in I<new_value> is "
+"interpreted relative to the current time on the timer's clock at the time of "
+"the call (i.e., I<new_value.it_value> specifies a time relative to the "
+"current value of the clock specified by I<clockid>). An absolute timeout "
+"can be selected via the I<flags> argument."
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"The I<flags> argument is a bit mask that can include the following values:"
+msgstr ""
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<TFD_TIMER_ABSTIME>"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"Interpret I<new_value.it_value> as an absolute value on the timer's clock. "
+"The timer will expire when the value of the timer's clock reaches the value "
+"specified in I<new_value.it_value>."
+msgstr ""
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<TFD_TIMER_CANCEL_ON_SET>"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"If this flag is specified along with B<TFD_TIMER_ABSTIME> and the clock for "
+"this timer is B<CLOCK_REALTIME> or B<CLOCK_REALTIME_ALARM>, then mark this "
+"timer as cancelable if the real-time clock undergoes a discontinuous change "
+"(B<settimeofday>(2), B<clock_settime>(2), or similar). When such changes "
+"occur, a current or future B<read>(2) from the file descriptor will fail "
+"with the error B<ECANCELED>."
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+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 "
+"current at the time of the call; see the description of "
+"B<timerfd_gettime>() following."
+msgstr ""
+
+#. type: SS
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "timerfd_gettime()"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+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 "
+"descriptor I<fd>."
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+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 "
+"currently disarmed. This field always contains a relative value, regardless "
+"of whether the B<TFD_TIMER_ABSTIME> flag was specified when setting the "
+"timer."
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+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 "
+"the time specified by I<curr_value.it_value>."
+msgstr ""
+
+#. type: SS
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "Operating on a timer file descriptor"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"The file descriptor returned by B<timerfd_create>() supports the following "
+"additional operations:"
+msgstr ""
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<read>(2)"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+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 "
+"B<read>(2), then the buffer given to B<read>(2) returns an unsigned 8-byte "
+"integer (I<uint64_t>) containing the number of expirations that have "
+"occurred. (The returned value is in host byte order\\[em]that is, the "
+"native byte order for integers on the host machine.)"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+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 "
+"error B<EAGAIN> if the file descriptor has been made nonblocking (via the "
+"use of the B<fcntl>(2) B<F_SETFL> operation to set the B<O_NONBLOCK> flag)."
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"A B<read>(2) fails with the error B<EINVAL> if the size of the supplied "
+"buffer is less than 8 bytes."
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"If the associated clock is either B<CLOCK_REALTIME> or "
+"B<CLOCK_REALTIME_ALARM>, the timer is absolute (B<TFD_TIMER_ABSTIME>), and "
+"the flag B<TFD_TIMER_CANCEL_ON_SET> was specified when calling "
+"B<timerfd_settime>(), then B<read>(2) fails with the error B<ECANCELED> if "
+"the real-time clock undergoes a discontinuous change. (This allows the "
+"reading application to discover such discontinuous changes to the clock.)"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"If the associated clock is either B<CLOCK_REALTIME> or "
+"B<CLOCK_REALTIME_ALARM>, the timer is absolute (B<TFD_TIMER_ABSTIME>), and "
+"the flag B<TFD_TIMER_CANCEL_ON_SET> was I<not> specified when calling "
+"B<timerfd_settime>(), then a discontinuous negative change to the clock (e."
+"g., B<clock_settime>(2)) may cause B<read>(2) to unblock, but return a "
+"value of 0 (i.e., no bytes read), if the clock change occurs after the time "
+"expired, but before the B<read>(2) on the file descriptor."
+msgstr ""
+
+#. type: TP
+#: archlinux fedora-40 fedora-rawhide mageia-cauldron
+#, no-wrap
+msgid "B<poll>(2)"
+msgstr ""
+
+#. type: TQ
+#: archlinux fedora-40 fedora-rawhide mageia-cauldron
+#, no-wrap
+msgid "B<select>(2)"
+msgstr ""
+
+#. type: TQ
+#: archlinux fedora-40 fedora-rawhide mageia-cauldron
+#, no-wrap
+msgid "(and similar)"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+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
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"The file descriptor also supports the other file-descriptor multiplexing "
+"APIs: B<pselect>(2), B<ppoll>(2), and B<epoll>(7)."
+msgstr ""
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<ioctl>(2)"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid "The following timerfd-specific command is supported:"
+msgstr ""
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<TFD_IOC_SET_TICKS> (since Linux 3.17)"
+msgstr ""
+
+#. commit 5442e9fbd7c23172a1c9bc736629cd123a9923f0
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"Adjust the number of timer expirations that have occurred. The argument is "
+"a pointer to a nonzero 8-byte integer (I<uint64_t>*) containing the new "
+"number of expirations. Once the number is set, any waiter on the timer is "
+"woken up. The only purpose of this command is to restore the expirations "
+"for the purpose of checkpoint/restore. This operation is available only if "
+"the kernel was configured with the B<CONFIG_CHECKPOINT_RESTORE> option."
+msgstr ""
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<close>(2)"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+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, "
+"the timer is disarmed and its resources are freed by the kernel."
+msgstr ""
+
+#. type: SS
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "fork(2) semantics"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+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 "
+"timer object as the corresponding file descriptor in the parent, and "
+"B<read>(2)s in the child will return information about expirations of the "
+"timer."
+msgstr ""
+
+#. type: SS
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "execve(2) semantics"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+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 "
+"armed."
+msgstr ""
+
+#. type: SH
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "RETURN VALUE"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+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
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+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: SH
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "ERRORS"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid "B<timerfd_create>() can fail with the following errors:"
+msgstr ""
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<EINVAL>"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid "The I<clockid> is not valid."
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"I<flags> is invalid; or, in Linux 2.6.26 or earlier, I<flags> is nonzero."
+msgstr ""
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<EMFILE>"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"The per-process limit on the number of open file descriptors has been "
+"reached."
+msgstr ""
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<ENFILE>"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"The system-wide limit on the total number of open files has been reached."
+msgstr ""
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<ENODEV>"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid "Could not mount (internal) anonymous inode device."
+msgstr ""
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<ENOMEM>"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid "There was insufficient kernel memory to create the timer."
+msgstr ""
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<EPERM>"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"I<clockid> was B<CLOCK_REALTIME_ALARM> or B<CLOCK_BOOTTIME_ALARM> but the "
+"caller did not have the B<CAP_WAKE_ALARM> capability."
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"B<timerfd_settime>() and B<timerfd_gettime>() can fail with the following "
+"errors:"
+msgstr ""
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<EBADF>"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid "I<fd> is not a valid file descriptor."
+msgstr ""
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<EFAULT>"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid "I<new_value>, I<old_value>, or I<curr_value> is not a valid pointer."
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid "I<fd> is not a valid timerfd file descriptor."
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid "B<timerfd_settime>() can also fail with the following errors:"
+msgstr ""
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<ECANCELED>"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid "See NOTES."
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"I<new_value> is not properly initialized (one of the I<tv_nsec> falls "
+"outside the range zero to 999,999,999)."
+msgstr ""
+
+#. This case only checked since Linux 2.6.29, and Linux 2.2.2[78].some-stable-version.
+#. In older kernel versions, no check was made for invalid flags.
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid "I<flags> is invalid."
+msgstr ""
+
+#. type: SH
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "STANDARDS"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron
+#: opensuse-leap-15-6 opensuse-tumbleweed
+msgid "Linux."
+msgstr ""
+
+#. type: SH
+#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron
+#: opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "HISTORY"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron
+#: opensuse-leap-15-6 opensuse-tumbleweed
+msgid "Linux 2.6.25, glibc 2.8."
+msgstr ""
+
+#. type: SH
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "NOTES"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"Suppose the following scenario for B<CLOCK_REALTIME> or "
+"B<CLOCK_REALTIME_ALARM> timer that was created with B<timerfd_create>():"
+msgstr ""
+
+#. type: IP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "(1)"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"The timer has been started (B<timerfd_settime>()) with the "
+"B<TFD_TIMER_ABSTIME> and B<TFD_TIMER_CANCEL_ON_SET> flags;"
+msgstr ""
+
+#. type: IP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "(2)"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"A discontinuous change (e.g., B<settimeofday>(2)) is subsequently made to "
+"the B<CLOCK_REALTIME> clock; and"
+msgstr ""
+
+#. type: IP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "(3)"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"the caller once more calls B<timerfd_settime>() to rearm the timer (without "
+"first doing a B<read>(2) on the file descriptor)."
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid "In this case the following occurs:"
+msgstr ""
+
+#. type: IP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "\\[bu]"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"The B<timerfd_settime>() returns -1 with I<errno> set to B<ECANCELED>. "
+"(This enables the caller to know that the previous timer was affected by a "
+"discontinuous change to the clock.)"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"The timer I<is successfully rearmed> with the settings provided in the "
+"second B<timerfd_settime>() call. (This was probably an implementation "
+"accident, but won't be fixed now, in case there are applications that depend "
+"on this behaviour.)"
+msgstr ""
+
+#. type: SH
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "BUGS"
+msgstr ""
+
+#. 2.6.29
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"Currently, B<timerfd_create>() supports fewer types of clock IDs than "
+"B<timer_create>(2)."
+msgstr ""
+
+#. type: SH
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "EXAMPLES"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"The following program creates a timer and then monitors its progress. The "
+"program accepts up to three command-line arguments. The first argument "
+"specifies the number of seconds for the initial expiration of the timer. "
+"The second argument specifies the interval for the timer, in seconds. The "
+"third argument specifies the number of times the program should allow the "
+"timer to expire before terminating. The second and third command-line "
+"arguments are optional."
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid "The following shell session demonstrates the use of the program:"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid ""
+"$B< a.out 3 1 100>\n"
+"0.000: timer started\n"
+"3.000: read: 1; total=1\n"
+"4.000: read: 1; total=2\n"
+"B<\\[ha]Z > # type control-Z to suspend the program\n"
+"[1]+ Stopped ./timerfd3_demo 3 1 100\n"
+"$ B<fg> # Resume execution after a few seconds\n"
+"a.out 3 1 100\n"
+"9.660: read: 5; total=7\n"
+"10.000: read: 1; total=8\n"
+"11.000: read: 1; total=9\n"
+"B<\\[ha]C > # type control-C to suspend the program\n"
+msgstr ""
+
+#. type: SS
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "Program source"
+msgstr ""
+
+#
+#
+#
+#
+#
+#
+#
+#. The commented out code here is what we currently need until
+#. the required stuff is in glibc
+#. /* Link with \-lrt */
+#. #define _GNU_SOURCE
+#. #include <sys/syscall.h>
+#. #include <unistd.h>
+#. #include <time.h>
+#. #if defined(__i386__)
+#. #define __NR_timerfd_create 322
+#. #define __NR_timerfd_settime 325
+#. #define __NR_timerfd_gettime 326
+#. #endif
+#. static int
+#. timerfd_create(int clockid, int flags)
+#. {
+#. return syscall(__NR_timerfd_create, clockid, flags);
+#. }
+#. static int
+#. timerfd_settime(int fd, int flags, struct itimerspec *new_value,
+#. struct itimerspec *curr_value)
+#. {
+#. return syscall(__NR_timerfd_settime, fd, flags, new_value,
+#. curr_value);
+#. }
+#. static int
+#. timerfd_gettime(int fd, struct itimerspec *curr_value)
+#. {
+#. return syscall(__NR_timerfd_gettime, fd, curr_value);
+#. }
+#. #define TFD_TIMER_ABSTIME (1 << 0)
+#. ////////////////////////////////////////////////////////////
+#. type: Plain text
+#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron
+#: opensuse-tumbleweed
+#, no-wrap
+msgid ""
+"#include E<lt>err.hE<gt>\n"
+"#include E<lt>inttypes.hE<gt>\n"
+"#include E<lt>stdio.hE<gt>\n"
+"#include E<lt>stdlib.hE<gt>\n"
+"#include E<lt>sys/timerfd.hE<gt>\n"
+"#include E<lt>time.hE<gt>\n"
+"#include E<lt>unistd.hE<gt>\n"
+"\\&\n"
+"static void\n"
+"print_elapsed_time(void)\n"
+"{\n"
+" int secs, nsecs;\n"
+" static int first_call = 1;\n"
+" struct timespec curr;\n"
+" static struct timespec start;\n"
+"\\&\n"
+" if (first_call) {\n"
+" first_call = 0;\n"
+" if (clock_gettime(CLOCK_MONOTONIC, &start) == -1)\n"
+" err(EXIT_FAILURE, \"clock_gettime\");\n"
+" }\n"
+"\\&\n"
+" if (clock_gettime(CLOCK_MONOTONIC, &curr) == -1)\n"
+" err(EXIT_FAILURE, \"clock_gettime\");\n"
+"\\&\n"
+" secs = curr.tv_sec - start.tv_sec;\n"
+" nsecs = curr.tv_nsec - start.tv_nsec;\n"
+" if (nsecs E<lt> 0) {\n"
+" secs--;\n"
+" nsecs += 1000000000;\n"
+" }\n"
+" printf(\"%d.%03d: \", secs, (nsecs + 500000) / 1000000);\n"
+"}\n"
+"\\&\n"
+"int\n"
+"main(int argc, char *argv[])\n"
+"{\n"
+" int fd;\n"
+" ssize_t s;\n"
+" uint64_t exp, tot_exp, max_exp;\n"
+" struct timespec now;\n"
+" struct itimerspec new_value;\n"
+"\\&\n"
+" if (argc != 2 && argc != 4) {\n"
+" fprintf(stderr, \"%s init-secs [interval-secs max-exp]\\en\",\n"
+" argv[0]);\n"
+" exit(EXIT_FAILURE);\n"
+" }\n"
+"\\&\n"
+" if (clock_gettime(CLOCK_REALTIME, &now) == -1)\n"
+" err(EXIT_FAILURE, \"clock_gettime\");\n"
+"\\&\n"
+" /* Create a CLOCK_REALTIME absolute timer with initial\n"
+" expiration and interval as specified in command line. */\n"
+"\\&\n"
+" new_value.it_value.tv_sec = now.tv_sec + atoi(argv[1]);\n"
+" new_value.it_value.tv_nsec = now.tv_nsec;\n"
+" if (argc == 2) {\n"
+" new_value.it_interval.tv_sec = 0;\n"
+" max_exp = 1;\n"
+" } else {\n"
+" new_value.it_interval.tv_sec = atoi(argv[2]);\n"
+" max_exp = atoi(argv[3]);\n"
+" }\n"
+" new_value.it_interval.tv_nsec = 0;\n"
+"\\&\n"
+" fd = timerfd_create(CLOCK_REALTIME, 0);\n"
+" if (fd == -1)\n"
+" err(EXIT_FAILURE, \"timerfd_create\");\n"
+"\\&\n"
+" if (timerfd_settime(fd, TFD_TIMER_ABSTIME, &new_value, NULL) == -1)\n"
+" err(EXIT_FAILURE, \"timerfd_settime\");\n"
+"\\&\n"
+" print_elapsed_time();\n"
+" printf(\"timer started\\en\");\n"
+"\\&\n"
+" for (tot_exp = 0; tot_exp E<lt> max_exp;) {\n"
+" s = read(fd, &exp, sizeof(uint64_t));\n"
+" if (s != sizeof(uint64_t))\n"
+" err(EXIT_FAILURE, \"read\");\n"
+"\\&\n"
+" tot_exp += exp;\n"
+" print_elapsed_time();\n"
+" printf(\"read: %\" PRIu64 \"; total=%\" PRIu64 \"\\en\", exp, tot_exp);\n"
+" }\n"
+"\\&\n"
+" exit(EXIT_SUCCESS);\n"
+"}\n"
+msgstr ""
+
+#. SRC END
+#. type: SH
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "SEE ALSO"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+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), "
+"B<timer_settime>(2), B<timespec>(3), B<epoll>(7), B<time>(7)"
+msgstr ""
+
+#. type: TH
+#: debian-bookworm
+#, no-wrap
+msgid "2023-02-05"
+msgstr ""
+
+#. type: TH
+#: debian-bookworm
+#, no-wrap
+msgid "Linux man-pages 6.03"
+msgstr ""
+
+#. type: TP
+#: debian-bookworm debian-unstable opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<poll>(2), B<select>(2) (and similar)"
+msgstr ""
+
+#. type: SH
+#: debian-bookworm
+#, no-wrap
+msgid "VERSIONS"
+msgstr ""
+
+#. type: Plain text
+#: debian-bookworm
+msgid ""
+"These system calls are available since Linux 2.6.25. Library support is "
+"provided since glibc 2.8."
+msgstr ""
+
+#. type: Plain text
+#: debian-bookworm
+msgid "These system calls are Linux-specific."
+msgstr ""
+
+#
+#
+#
+#
+#
+#
+#
+#. The commented out code here is what we currently need until
+#. the required stuff is in glibc
+#. /* Link with \-lrt */
+#. #define _GNU_SOURCE
+#. #include <sys/syscall.h>
+#. #include <unistd.h>
+#. #include <time.h>
+#. #if defined(__i386__)
+#. #define __NR_timerfd_create 322
+#. #define __NR_timerfd_settime 325
+#. #define __NR_timerfd_gettime 326
+#. #endif
+#. static int
+#. timerfd_create(int clockid, int flags)
+#. {
+#. return syscall(__NR_timerfd_create, clockid, flags);
+#. }
+#. static int
+#. timerfd_settime(int fd, int flags, struct itimerspec *new_value,
+#. struct itimerspec *curr_value)
+#. {
+#. return syscall(__NR_timerfd_settime, fd, flags, new_value,
+#. curr_value);
+#. }
+#. static int
+#. timerfd_gettime(int fd, struct itimerspec *curr_value)
+#. {
+#. return syscall(__NR_timerfd_gettime, fd, curr_value);
+#. }
+#. #define TFD_TIMER_ABSTIME (1 << 0)
+#. ////////////////////////////////////////////////////////////
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid ""
+"#include E<lt>err.hE<gt>\n"
+"#include E<lt>inttypes.hE<gt>\n"
+"#include E<lt>stdio.hE<gt>\n"
+"#include E<lt>stdlib.hE<gt>\n"
+"#include E<lt>sys/timerfd.hE<gt>\n"
+"#include E<lt>time.hE<gt>\n"
+"#include E<lt>unistd.hE<gt>\n"
+msgstr ""
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid ""
+"static void\n"
+"print_elapsed_time(void)\n"
+"{\n"
+" int secs, nsecs;\n"
+" static int first_call = 1;\n"
+" struct timespec curr;\n"
+" static struct timespec start;\n"
+msgstr ""
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid ""
+" if (first_call) {\n"
+" first_call = 0;\n"
+" if (clock_gettime(CLOCK_MONOTONIC, &start) == -1)\n"
+" err(EXIT_FAILURE, \"clock_gettime\");\n"
+" }\n"
+msgstr ""
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid ""
+" if (clock_gettime(CLOCK_MONOTONIC, &curr) == -1)\n"
+" err(EXIT_FAILURE, \"clock_gettime\");\n"
+msgstr ""
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid ""
+" secs = curr.tv_sec - start.tv_sec;\n"
+" nsecs = curr.tv_nsec - start.tv_nsec;\n"
+" if (nsecs E<lt> 0) {\n"
+" secs--;\n"
+" nsecs += 1000000000;\n"
+" }\n"
+" printf(\"%d.%03d: \", secs, (nsecs + 500000) / 1000000);\n"
+"}\n"
+msgstr ""
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid ""
+"int\n"
+"main(int argc, char *argv[])\n"
+"{\n"
+" int fd;\n"
+" ssize_t s;\n"
+" uint64_t exp, tot_exp, max_exp;\n"
+" struct timespec now;\n"
+" struct itimerspec new_value;\n"
+msgstr ""
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid ""
+" if (argc != 2 && argc != 4) {\n"
+" fprintf(stderr, \"%s init-secs [interval-secs max-exp]\\en\",\n"
+" argv[0]);\n"
+" exit(EXIT_FAILURE);\n"
+" }\n"
+msgstr ""
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid ""
+" if (clock_gettime(CLOCK_REALTIME, &now) == -1)\n"
+" err(EXIT_FAILURE, \"clock_gettime\");\n"
+msgstr ""
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid ""
+" /* Create a CLOCK_REALTIME absolute timer with initial\n"
+" expiration and interval as specified in command line. */\n"
+msgstr ""
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid ""
+" new_value.it_value.tv_sec = now.tv_sec + atoi(argv[1]);\n"
+" new_value.it_value.tv_nsec = now.tv_nsec;\n"
+" if (argc == 2) {\n"
+" new_value.it_interval.tv_sec = 0;\n"
+" max_exp = 1;\n"
+" } else {\n"
+" new_value.it_interval.tv_sec = atoi(argv[2]);\n"
+" max_exp = atoi(argv[3]);\n"
+" }\n"
+" new_value.it_interval.tv_nsec = 0;\n"
+msgstr ""
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid ""
+" fd = timerfd_create(CLOCK_REALTIME, 0);\n"
+" if (fd == -1)\n"
+" err(EXIT_FAILURE, \"timerfd_create\");\n"
+msgstr ""
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid ""
+" if (timerfd_settime(fd, TFD_TIMER_ABSTIME, &new_value, NULL) == -1)\n"
+" err(EXIT_FAILURE, \"timerfd_settime\");\n"
+msgstr ""
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid ""
+" print_elapsed_time();\n"
+" printf(\"timer started\\en\");\n"
+msgstr ""
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid ""
+" for (tot_exp = 0; tot_exp E<lt> max_exp;) {\n"
+" s = read(fd, &exp, sizeof(uint64_t));\n"
+" if (s != sizeof(uint64_t))\n"
+" err(EXIT_FAILURE, \"read\");\n"
+msgstr ""
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid ""
+" tot_exp += exp;\n"
+" print_elapsed_time();\n"
+" printf(\"read: %\" PRIu64 \"; total=%\" PRIu64 \"\\en\", exp, tot_exp);\n"
+" }\n"
+msgstr ""
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid ""
+" exit(EXIT_SUCCESS);\n"
+"}\n"
+msgstr ""
+
+#. type: TH
+#: debian-unstable opensuse-tumbleweed
+#, no-wrap
+msgid "2023-05-03"
+msgstr ""
+
+#. type: TH
+#: debian-unstable opensuse-tumbleweed
+#, no-wrap
+msgid "Linux man-pages 6.05.01"
+msgstr ""
+
+#. type: TH
+#: opensuse-leap-15-6
+#, no-wrap
+msgid "2023-03-30"
+msgstr ""
+
+#. type: TH
+#: opensuse-leap-15-6
+#, no-wrap
+msgid "Linux man-pages 6.04"
+msgstr ""