diff options
Diffstat (limited to 'templates/man2/timer_create.2.pot')
-rw-r--r-- | templates/man2/timer_create.2.pot | 1211 |
1 files changed, 1211 insertions, 0 deletions
diff --git a/templates/man2/timer_create.2.pot b/templates/man2/timer_create.2.pot new file mode 100644 index 00000000..d8996123 --- /dev/null +++ b/templates/man2/timer_create.2.pot @@ -0,0 +1,1211 @@ +# 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 "timer_create" +msgstr "" + +#. type: TH +#: archlinux fedora-40 fedora-rawhide mageia-cauldron +#, no-wrap +msgid "2023-11-11" +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 "timer_create - create a POSIX per-process timer" +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 "Real-time library (I<librt>, I<-lrt>)" +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>signal.hE<gt>> /* Definition of B<SIGEV_*> constants */\n" +"B<#include E<lt>time.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 timer_create(clockid_t >I<clockid>B<,>\n" +"B< struct sigevent *_Nullable restrict >I<sevp>B<,>\n" +"B< timer_t *restrict >I<timerid>B<);>\n" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Feature Test Macro Requirements for glibc (see B<feature_test_macros>(7)):" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "B<timer_create>():" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid " _POSIX_C_SOURCE E<gt>= 199309L\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 "" +"B<timer_create>() creates a new per-process interval timer. The ID of the " +"new timer is returned in the buffer pointed to by I<timerid>, which must be " +"a non-null pointer. This ID is unique within the process, until the timer " +"is deleted. The new timer is initially disarmed." +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> argument specifies the clock that the new timer uses to " +"measure time. It can be specified as one of the following values:" +msgstr "" + +#. type: TP +#: 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 "" + +#. Note: the CLOCK_MONOTONIC_RAW clock added for clock_gettime() +#. in Linux 2.6.28 is not supported for POSIX timers -- mtk, Feb 2009 +#. 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_PROCESS_CPUTIME_ID> (since Linux 2.6.12)" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"A clock that measures (user and system) CPU time consumed by (all of the " +"threads in) the calling process." +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_THREAD_CPUTIME_ID> (since Linux 2.6.12)" +msgstr "" + +#. The CLOCK_MONOTONIC_RAW that was added in Linux 2.6.28 can't be used +#. to create a timer -- mtk, Feb 2009 +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"A clock that measures (user and system) CPU time consumed by the calling " +"thread." +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 2.6.39)" +msgstr "" + +#. commit 70a08cca1227dc31c784ec930099a4417a06e7d0 +#. 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.0)" +msgstr "" + +#. commit 9a7adcf5c6dea63d2e47e6f6d2f7a6c9f48b9337 +#. 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.0)" +msgstr "" + +#. commit 9a7adcf5c6dea63d2e47e6f6d2f7a6c9f48b9337 +#. 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: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B<CLOCK_TAI> (since Linux 3.10)" +msgstr "" + +#. type: Plain text +#: archlinux fedora-40 fedora-rawhide mageia-cauldron +msgid "" +"A system-wide clock derived from wall-clock time but counting leap seconds." +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 "" +"As well as the above values, I<clockid> can be specified as the I<clockid> " +"returned by a call to B<clock_getcpuclockid>(3) or " +"B<pthread_getcpuclockid>(3)." +msgstr "" + +#. type: Plain text +#: archlinux fedora-40 fedora-rawhide mageia-cauldron +msgid "" +"The I<sevp> argument points to a I<sigevent> structure that specifies how " +"the caller should be notified when the timer expires. For the definition " +"and general details of this structure, see B<sigevent>(3type)." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "The I<sevp.sigev_notify> field can have 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<SIGEV_NONE>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Don't asynchronously notify when the timer expires. Progress of the timer " +"can be monitored using B<timer_gettime>(2)." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B<SIGEV_SIGNAL>" +msgstr "" + +#. type: Plain text +#: archlinux fedora-40 fedora-rawhide mageia-cauldron +msgid "" +"Upon timer expiration, generate the signal I<sigev_signo> for the process. " +"See B<sigevent>(3type) for general details. The I<si_code> field of the " +"I<siginfo_t> structure will be set to B<SI_TIMER>. At any point in time, at " +"most one signal is queued to the process for a given timer; see " +"B<timer_getoverrun>(2) for more details." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B<SIGEV_THREAD>" +msgstr "" + +#. type: Plain text +#: archlinux fedora-40 fedora-rawhide mageia-cauldron +msgid "" +"Upon timer expiration, invoke I<sigev_notify_function> as if it were the " +"start function of a new thread. See B<sigevent>(3type) for details." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B<SIGEV_THREAD_ID> (Linux-specific)" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"As for B<SIGEV_SIGNAL>, but the signal is targeted at the thread whose ID is " +"given in I<sigev_notify_thread_id>, which must be a thread in the same " +"process as the caller. The I<sigev_notify_thread_id> field specifies a " +"kernel thread ID, that is, the value returned by B<clone>(2) or " +"B<gettid>(2). This flag is intended only for use by threading libraries." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Specifying I<sevp> as NULL is equivalent to specifying a pointer to a " +"I<sigevent> structure in which I<sigev_notify> is B<SIGEV_SIGNAL>, " +"I<sigev_signo> is B<SIGALRM>, and I<sigev_value.sival_int> is the timer ID." +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<timer_create>() returns 0, and the ID of the new timer is " +"placed in I<*timerid>. On failure, -1 is returned, and I<errno> is set to " +"indicate the error." +msgstr "" + +#. type: SH +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "ERRORS" +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B<EAGAIN>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "Temporary error during kernel allocation of timer structures." +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 "" +"Clock ID, I<sigev_notify>, I<sigev_signo>, or I<sigev_notify_thread_id> is " +"invalid." +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 "" + +#. glibc layer: malloc() +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "Could not allocate memory." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B<ENOTSUP>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "The kernel does not support creating a timer against this I<clockid>." +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: SH +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "VERSIONS" +msgstr "" + +#. type: SS +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "C library/kernel differences" +msgstr "" + +#. See nptl/sysdeps/unix/sysv/linux/timer_create.c +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Part of the implementation of the POSIX timers API is provided by glibc. In " +"particular:" +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 "" +"Much of the functionality for B<SIGEV_THREAD> is implemented within glibc, " +"rather than the kernel. (This is necessarily so, since the thread involved " +"in handling the notification is one that must be managed by the C library " +"POSIX threads implementation.) Although the notification delivered to the " +"process is via a thread, internally the NPTL implementation uses a " +"I<sigev_notify> value of B<SIGEV_THREAD_ID> along with a real-time signal " +"that is reserved by the implementation (see B<nptl>(7))." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"The implementation of the default case where I<evp> is NULL is handled " +"inside glibc, which invokes the underlying system call with a suitably " +"populated I<sigevent> structure." +msgstr "" + +#. See the glibc source file kernel-posix-timers.h for the structure +#. that glibc uses to map user-space timer IDs to kernel timer IDs +#. The kernel-level timer ID is exposed via siginfo.si_tid. +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"The timer IDs presented at user level are maintained by glibc, which maps " +"these IDs to the timer IDs employed by the kernel." +msgstr "" + +#. type: 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 "POSIX.1-2008." +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. POSIX.1-2001." +msgstr "" + +#. glibc commit 93a78ac437ba44f493333d7e2a4b0249839ce460 +#. type: Plain text +#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron +#: opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Prior to Linux 2.6, glibc provided an incomplete user-space implementation " +"(B<CLOCK_REALTIME> timers only) using POSIX threads, and before glibc 2.17, " +"the implementation falls back to this technique on systems running kernels " +"older than Linux 2.6." +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 "A program may create multiple interval timers using B<timer_create>()." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Timers are not inherited by the child of a B<fork>(2), and are disarmed and " +"deleted during an B<execve>(2)." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"The kernel preallocates a \"queued real-time signal\" for each timer created " +"using B<timer_create>(). Consequently, the number of timers is limited by " +"the B<RLIMIT_SIGPENDING> resource limit (see B<setrlimit>(2))." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"The timers created by B<timer_create>() are commonly known as \"POSIX " +"(interval) timers\". The POSIX timers API consists of the following " +"interfaces:" +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B<timer_create>()" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "Create a 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<timer_settime>(2)" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "Arm (start) or disarm (stop) a 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<timer_gettime>(2)" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Fetch the time remaining until the next expiration of a timer, along with " +"the interval setting of 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<timer_getoverrun>(2)" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "Return the overrun count for the last timer expiration." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B<timer_delete>(2)" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "Disarm and delete a timer." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Since Linux 3.10, the I</proc/>pidI</timers> file can be used to list the " +"POSIX timers for the process with PID I<pid>. See B<proc>(5) for further " +"information." +msgstr "" + +#. baa73d9e478ff32d62f3f9422822b59dd9a95a21 +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Since Linux 4.10, support for POSIX timers is a configurable option that is " +"enabled by default. Kernel support can be disabled via the " +"B<CONFIG_POSIX_TIMERS> option." +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 program below takes two arguments: a sleep period in seconds, and a " +"timer frequency in nanoseconds. The program establishes a handler for the " +"signal it uses for the timer, blocks that signal, creates and arms a timer " +"that expires with the given frequency, sleeps for the specified number of " +"seconds, and then unblocks the timer signal. Assuming that the timer " +"expired at least once while the program slept, the signal handler will be " +"invoked, and the handler displays some information about the timer " +"notification. The program terminates after one invocation of the signal " +"handler." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"In the following example run, the program sleeps for 1 second, after " +"creating a timer that has a frequency of 100 nanoseconds. By the time the " +"signal is unblocked and delivered, there have been around ten million " +"overruns." +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 1 100>\n" +"Establishing handler for signal 34\n" +"Blocking signal 34\n" +"timer ID is 0x804c008\n" +"Sleeping for 1 seconds\n" +"Unblocking signal 34\n" +"Caught signal 34\n" +" sival_ptr = 0xbfb174f4; *sival_ptr = 0x804c008\n" +" overrun count = 10004886\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 "" + +#. type: Plain text +#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron +#: opensuse-tumbleweed +#, no-wrap +msgid "" +"#include E<lt>signal.hE<gt>\n" +"#include E<lt>stdint.hE<gt>\n" +"#include E<lt>stdio.hE<gt>\n" +"#include E<lt>stdlib.hE<gt>\n" +"#include E<lt>time.hE<gt>\n" +"#include E<lt>unistd.hE<gt>\n" +"\\&\n" +"#define CLOCKID CLOCK_REALTIME\n" +"#define SIG SIGRTMIN\n" +"\\&\n" +"#define errExit(msg) do { perror(msg); exit(EXIT_FAILURE); \\e\n" +" } while (0)\n" +"\\&\n" +"static void\n" +"print_siginfo(siginfo_t *si)\n" +"{\n" +" int or;\n" +" timer_t *tidp;\n" +"\\&\n" +" tidp = si-E<gt>si_value.sival_ptr;\n" +"\\&\n" +" printf(\" sival_ptr = %p; \", si-E<gt>si_value.sival_ptr);\n" +" printf(\" *sival_ptr = %#jx\\en\", (uintmax_t) *tidp);\n" +"\\&\n" +" or = timer_getoverrun(*tidp);\n" +" if (or == -1)\n" +" errExit(\"timer_getoverrun\");\n" +" else\n" +" printf(\" overrun count = %d\\en\", or);\n" +"}\n" +"\\&\n" +"static void\n" +"handler(int sig, siginfo_t *si, void *uc)\n" +"{\n" +" /* Note: calling printf() from a signal handler is not safe\n" +" (and should not be done in production programs), since\n" +" printf() is not async-signal-safe; see signal-safety(7).\n" +" Nevertheless, we use printf() here as a simple way of\n" +" showing that the handler was called. */\n" +"\\&\n" +" printf(\"Caught signal %d\\en\", sig);\n" +" print_siginfo(si);\n" +" signal(sig, SIG_IGN);\n" +"}\n" +"\\&\n" +"int\n" +"main(int argc, char *argv[])\n" +"{\n" +" timer_t timerid;\n" +" sigset_t mask;\n" +" long long freq_nanosecs;\n" +" struct sigevent sev;\n" +" struct sigaction sa;\n" +" struct itimerspec its;\n" +"\\&\n" +" if (argc != 3) {\n" +" fprintf(stderr, \"Usage: %s E<lt>sleep-secsE<gt> E<lt>freq-nanosecsE<gt>\\en\",\n" +" argv[0]);\n" +" exit(EXIT_FAILURE);\n" +" }\n" +"\\&\n" +" /* Establish handler for timer signal. */\n" +"\\&\n" +" printf(\"Establishing handler for signal %d\\en\", SIG);\n" +" sa.sa_flags = SA_SIGINFO;\n" +" sa.sa_sigaction = handler;\n" +" sigemptyset(&sa.sa_mask);\n" +" if (sigaction(SIG, &sa, NULL) == -1)\n" +" errExit(\"sigaction\");\n" +"\\&\n" +" /* Block timer signal temporarily. */\n" +"\\&\n" +" printf(\"Blocking signal %d\\en\", SIG);\n" +" sigemptyset(&mask);\n" +" sigaddset(&mask, SIG);\n" +" if (sigprocmask(SIG_SETMASK, &mask, NULL) == -1)\n" +" errExit(\"sigprocmask\");\n" +"\\&\n" +" /* Create the timer. */\n" +"\\&\n" +" sev.sigev_notify = SIGEV_SIGNAL;\n" +" sev.sigev_signo = SIG;\n" +" sev.sigev_value.sival_ptr = &timerid;\n" +" if (timer_create(CLOCKID, &sev, &timerid) == -1)\n" +" errExit(\"timer_create\");\n" +"\\&\n" +" printf(\"timer ID is %#jx\\en\", (uintmax_t) timerid);\n" +"\\&\n" +" /* Start the timer. */\n" +"\\&\n" +" freq_nanosecs = atoll(argv[2]);\n" +" its.it_value.tv_sec = freq_nanosecs / 1000000000;\n" +" its.it_value.tv_nsec = freq_nanosecs % 1000000000;\n" +" its.it_interval.tv_sec = its.it_value.tv_sec;\n" +" its.it_interval.tv_nsec = its.it_value.tv_nsec;\n" +"\\&\n" +" if (timer_settime(timerid, 0, &its, NULL) == -1)\n" +" errExit(\"timer_settime\");\n" +"\\&\n" +" /* Sleep for a while; meanwhile, the timer may expire\n" +" multiple times. */\n" +"\\&\n" +" printf(\"Sleeping for %d seconds\\en\", atoi(argv[1]));\n" +" sleep(atoi(argv[1]));\n" +"\\&\n" +" /* Unlock the timer signal, so that timer notification\n" +" can be delivered. */\n" +"\\&\n" +" printf(\"Unblocking signal %d\\en\", SIG);\n" +" if (sigprocmask(SIG_UNBLOCK, &mask, NULL) == -1)\n" +" errExit(\"sigprocmask\");\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 fedora-40 fedora-rawhide mageia-cauldron +msgid "" +"B<clock_gettime>(2), B<setitimer>(2), B<timer_delete>(2), " +"B<timer_getoverrun>(2), B<timer_settime>(2), B<timerfd_create>(2), " +"B<clock_getcpuclockid>(3), B<pthread_getcpuclockid>(3), B<pthreads>(7), " +"B<sigevent>(3type), B<signal>(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: Plain text +#: debian-bookworm debian-unstable opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"A system-wide clock derived from wall-clock time but ignoring leap seconds." +msgstr "" + +#. type: Plain text +#: debian-bookworm debian-unstable opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"The I<sevp> argument points to a I<sigevent> structure that specifies how " +"the caller should be notified when the timer expires. For the definition " +"and general details of this structure, see B<sigevent>(7)." +msgstr "" + +#. type: Plain text +#: debian-bookworm debian-unstable opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Upon timer expiration, generate the signal I<sigev_signo> for the process. " +"See B<sigevent>(7) for general details. The I<si_code> field of the " +"I<siginfo_t> structure will be set to B<SI_TIMER>. At any point in time, at " +"most one signal is queued to the process for a given timer; see " +"B<timer_getoverrun>(2) for more details." +msgstr "" + +#. type: Plain text +#: debian-bookworm debian-unstable opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Upon timer expiration, invoke I<sigev_notify_function> as if it were the " +"start function of a new thread. See B<sigevent>(7) for details." +msgstr "" + +#. type: Plain text +#: debian-bookworm +msgid "This system call is available since Linux 2.6." +msgstr "" + +#. type: Plain text +#: debian-bookworm +msgid "POSIX.1-2001, POSIX.1-2008." +msgstr "" + +#. glibc commit 93a78ac437ba44f493333d7e2a4b0249839ce460 +#. type: Plain text +#: debian-bookworm +msgid "" +"The POSIX timers system calls first appeared in Linux 2.6. Prior to this, " +"glibc provided an incomplete user-space implementation (B<CLOCK_REALTIME> " +"timers only) using POSIX threads, and before glibc 2.17, the implementation " +"falls back to this technique on systems running kernels older than Linux 2.6." +msgstr "" + +#. type: Plain text +#: debian-bookworm opensuse-leap-15-6 +#, no-wrap +msgid "" +"#include E<lt>signal.hE<gt>\n" +"#include E<lt>stdint.hE<gt>\n" +"#include E<lt>stdio.hE<gt>\n" +"#include E<lt>stdlib.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 "" +"#define CLOCKID CLOCK_REALTIME\n" +"#define SIG SIGRTMIN\n" +msgstr "" + +#. type: Plain text +#: debian-bookworm opensuse-leap-15-6 +#, no-wrap +msgid "" +"#define errExit(msg) do { perror(msg); exit(EXIT_FAILURE); \\e\n" +" } while (0)\n" +msgstr "" + +#. type: Plain text +#: debian-bookworm opensuse-leap-15-6 +#, no-wrap +msgid "" +"static void\n" +"print_siginfo(siginfo_t *si)\n" +"{\n" +" int or;\n" +" timer_t *tidp;\n" +msgstr "" + +#. type: Plain text +#: debian-bookworm opensuse-leap-15-6 +#, no-wrap +msgid " tidp = si-E<gt>si_value.sival_ptr;\n" +msgstr "" + +#. type: Plain text +#: debian-bookworm opensuse-leap-15-6 +#, no-wrap +msgid "" +" printf(\" sival_ptr = %p; \", si-E<gt>si_value.sival_ptr);\n" +" printf(\" *sival_ptr = %#jx\\en\", (uintmax_t) *tidp);\n" +msgstr "" + +#. type: Plain text +#: debian-bookworm opensuse-leap-15-6 +#, no-wrap +msgid "" +" or = timer_getoverrun(*tidp);\n" +" if (or == -1)\n" +" errExit(\"timer_getoverrun\");\n" +" else\n" +" printf(\" overrun count = %d\\en\", or);\n" +"}\n" +msgstr "" + +#. type: Plain text +#: debian-bookworm opensuse-leap-15-6 +#, no-wrap +msgid "" +"static void\n" +"handler(int sig, siginfo_t *si, void *uc)\n" +"{\n" +" /* Note: calling printf() from a signal handler is not safe\n" +" (and should not be done in production programs), since\n" +" printf() is not async-signal-safe; see signal-safety(7).\n" +" Nevertheless, we use printf() here as a simple way of\n" +" showing that the handler was called. */\n" +msgstr "" + +#. type: Plain text +#: debian-bookworm opensuse-leap-15-6 +#, no-wrap +msgid "" +" printf(\"Caught signal %d\\en\", sig);\n" +" print_siginfo(si);\n" +" signal(sig, SIG_IGN);\n" +"}\n" +msgstr "" + +#. type: Plain text +#: debian-bookworm opensuse-leap-15-6 +#, no-wrap +msgid "" +"int\n" +"main(int argc, char *argv[])\n" +"{\n" +" timer_t timerid;\n" +" sigset_t mask;\n" +" long long freq_nanosecs;\n" +" struct sigevent sev;\n" +" struct sigaction sa;\n" +" struct itimerspec its;\n" +msgstr "" + +#. type: Plain text +#: debian-bookworm opensuse-leap-15-6 +#, no-wrap +msgid "" +" if (argc != 3) {\n" +" fprintf(stderr, \"Usage: %s E<lt>sleep-secsE<gt> E<lt>freq-nanosecsE<gt>\\en\",\n" +" argv[0]);\n" +" exit(EXIT_FAILURE);\n" +" }\n" +msgstr "" + +#. type: Plain text +#: debian-bookworm opensuse-leap-15-6 +#, no-wrap +msgid " /* Establish handler for timer signal. */\n" +msgstr "" + +#. type: Plain text +#: debian-bookworm opensuse-leap-15-6 +#, no-wrap +msgid "" +" printf(\"Establishing handler for signal %d\\en\", SIG);\n" +" sa.sa_flags = SA_SIGINFO;\n" +" sa.sa_sigaction = handler;\n" +" sigemptyset(&sa.sa_mask);\n" +" if (sigaction(SIG, &sa, NULL) == -1)\n" +" errExit(\"sigaction\");\n" +msgstr "" + +#. type: Plain text +#: debian-bookworm opensuse-leap-15-6 +#, no-wrap +msgid " /* Block timer signal temporarily. */\n" +msgstr "" + +#. type: Plain text +#: debian-bookworm opensuse-leap-15-6 +#, no-wrap +msgid "" +" printf(\"Blocking signal %d\\en\", SIG);\n" +" sigemptyset(&mask);\n" +" sigaddset(&mask, SIG);\n" +" if (sigprocmask(SIG_SETMASK, &mask, NULL) == -1)\n" +" errExit(\"sigprocmask\");\n" +msgstr "" + +#. type: Plain text +#: debian-bookworm opensuse-leap-15-6 +#, no-wrap +msgid " /* Create the timer. */\n" +msgstr "" + +#. type: Plain text +#: debian-bookworm opensuse-leap-15-6 +#, no-wrap +msgid "" +" sev.sigev_notify = SIGEV_SIGNAL;\n" +" sev.sigev_signo = SIG;\n" +" sev.sigev_value.sival_ptr = &timerid;\n" +" if (timer_create(CLOCKID, &sev, &timerid) == -1)\n" +" errExit(\"timer_create\");\n" +msgstr "" + +#. type: Plain text +#: debian-bookworm opensuse-leap-15-6 +#, no-wrap +msgid " printf(\"timer ID is %#jx\\en\", (uintmax_t) timerid);\n" +msgstr "" + +#. type: Plain text +#: debian-bookworm opensuse-leap-15-6 +#, no-wrap +msgid " /* Start the timer. */\n" +msgstr "" + +#. type: Plain text +#: debian-bookworm opensuse-leap-15-6 +#, no-wrap +msgid "" +" freq_nanosecs = atoll(argv[2]);\n" +" its.it_value.tv_sec = freq_nanosecs / 1000000000;\n" +" its.it_value.tv_nsec = freq_nanosecs % 1000000000;\n" +" its.it_interval.tv_sec = its.it_value.tv_sec;\n" +" its.it_interval.tv_nsec = its.it_value.tv_nsec;\n" +msgstr "" + +#. type: Plain text +#: debian-bookworm opensuse-leap-15-6 +#, no-wrap +msgid "" +" if (timer_settime(timerid, 0, &its, NULL) == -1)\n" +" errExit(\"timer_settime\");\n" +msgstr "" + +#. type: Plain text +#: debian-bookworm opensuse-leap-15-6 +#, no-wrap +msgid "" +" /* Sleep for a while; meanwhile, the timer may expire\n" +" multiple times. */\n" +msgstr "" + +#. type: Plain text +#: debian-bookworm opensuse-leap-15-6 +#, no-wrap +msgid "" +" printf(\"Sleeping for %d seconds\\en\", atoi(argv[1]));\n" +" sleep(atoi(argv[1]));\n" +msgstr "" + +#. type: Plain text +#: debian-bookworm opensuse-leap-15-6 +#, no-wrap +msgid "" +" /* Unlock the timer signal, so that timer notification\n" +" can be delivered. */\n" +msgstr "" + +#. type: Plain text +#: debian-bookworm opensuse-leap-15-6 +#, no-wrap +msgid "" +" printf(\"Unblocking signal %d\\en\", SIG);\n" +" if (sigprocmask(SIG_UNBLOCK, &mask, NULL) == -1)\n" +" errExit(\"sigprocmask\");\n" +msgstr "" + +#. type: Plain text +#: debian-bookworm opensuse-leap-15-6 +#, no-wrap +msgid "" +" exit(EXIT_SUCCESS);\n" +"}\n" +msgstr "" + +#. type: Plain text +#: debian-bookworm debian-unstable opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"B<clock_gettime>(2), B<setitimer>(2), B<timer_delete>(2), " +"B<timer_getoverrun>(2), B<timer_settime>(2), B<timerfd_create>(2), " +"B<clock_getcpuclockid>(3), B<pthread_getcpuclockid>(3), B<pthreads>(7), " +"B<sigevent>(7), B<signal>(7), B<time>(7)" +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 "" |