diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-15 19:43:11 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-15 19:43:11 +0000 |
commit | fc22b3d6507c6745911b9dfcc68f1e665ae13dbc (patch) | |
tree | ce1e3bce06471410239a6f41282e328770aa404a /templates/man2/timerfd_create.2.pot | |
parent | Initial commit. (diff) | |
download | manpages-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.pot | 1428 |
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 "" |