summaryrefslogtreecommitdiffstats
path: root/po/ru/man2/timer_create.2.po
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 /po/ru/man2/timer_create.2.po
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 'po/ru/man2/timer_create.2.po')
-rw-r--r--po/ru/man2/timer_create.2.po1497
1 files changed, 1497 insertions, 0 deletions
diff --git a/po/ru/man2/timer_create.2.po b/po/ru/man2/timer_create.2.po
new file mode 100644
index 00000000..488afa6e
--- /dev/null
+++ b/po/ru/man2/timer_create.2.po
@@ -0,0 +1,1497 @@
+# Russian translation of manpages
+# This file is distributed under the same license as the manpages-l10n package.
+# Copyright © of this file:
+# Azamat Hackimov <azamat.hackimov@gmail.com>, 2014, 2016-2017.
+# Dmitry Bolkhovskikh <d20052005@yandex.ru>, 2017.
+# Yuri Kozlov <yuray@komyakino.ru>, 2011-2019.
+# Иван Павлов <pavia00@gmail.com>, 2017, 2019.
+msgid ""
+msgstr ""
+"Project-Id-Version: manpages-l10n\n"
+"POT-Creation-Date: 2024-03-01 17:12+0100\n"
+"PO-Revision-Date: 2019-09-16 18:46+0300\n"
+"Last-Translator: Yuri Kozlov <yuray@komyakino.ru>\n"
+"Language-Team: Russian <man-pages-ru-talks@lists.sourceforge.net>\n"
+"Language: ru\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
+"n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || "
+"(n%100>=11 && n%100<=14)? 2 : 3);\n"
+"X-Generator: Lokalize 2.0\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 "timer_create"
+
+#. type: TH
+#: archlinux fedora-40 fedora-rawhide mageia-cauldron
+#, no-wrap
+msgid "2023-11-11"
+msgstr "11 ноября 2023 г."
+
+#. type: TH
+#: archlinux fedora-40 fedora-rawhide mageia-cauldron
+#, no-wrap
+msgid "Linux man-pages 6.06"
+msgstr "Linux man-pages 6.06"
+
+#. 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 "timer_create - создаёт таймер POSIX для определённого процесса"
+
+#. 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 ""
+"B<#include E<lt>signal.hE<gt>> /* определения констант B<SIGEV_*> */\n"
+"B<#include E<lt>time.hE<gt>>\n"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, fuzzy, no-wrap
+#| msgid ""
+#| "B<int timer_create(clockid_t >I<clockid>B<, struct sigevent *restrict >I<sevp>B<,>\n"
+#| "B< timer_t *restrict >I<timerid>B<);>\n"
+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 ""
+"B<int timer_create(clockid_t >I<clockid>B<, struct sigevent *restrict >I<sevp>B<,>\n"
+"B< timer_t *restrict >I<timerid>B<);>\n"
+
+#. 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 ""
+"Требования макроса тестирования свойств для glibc (см. "
+"B<feature_test_macros>(7)):"
+
+#. 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 "B<timer_create>():"
+
+#. 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 " _POSIX_C_SOURCE E<gt>= 199309L\n"
+
+#. 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 ""
+"Вызов B<timer_create>() создаёт новый таймер для процесса. Идентификатор "
+"нового таймера возвращается в буфере, указанном в I<timerid>, его значение "
+"не должно быть равно null. Данный идентификатор уникален для процесса, пока "
+"таймер не будет удалён. Новый таймер создаётся неактивным."
+
+#. 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 ""
+"В аргументе I<clockid> задаются часы, которые используются в новом таймере "
+"для учёта времени. Это может быть одно из следующих значений:"
+
+#. 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 "B<CLOCK_REALTIME>"
+
+#. 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 "B<CLOCK_MONOTONIC>"
+
+#. 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 "B<CLOCK_PROCESS_CPUTIME_ID> (начиная с Linux 2.6.12)"
+
+#. 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 "B<CLOCK_THREAD_CPUTIME_ID> (начиная с Linux 2.6.12)"
+
+#. 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 "B<CLOCK_BOOTTIME> (начиная с Linux 2.6.39)"
+
+#. 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 ""
+"Подобно B<CLOCK_MONOTONIC>, представляет монотонно растущие часы. Однако, "
+"если часы B<CLOCK_MONOTONIC> не отсчитывают время когда система находится в "
+"состоянии ожидания (suspended), а часы B<CLOCK_BOOTTIME> учитывают время в "
+"таком состоянии системы. Это полезно приложениям, которым необходимо "
+"учитывать состояние ожидания. B<CLOCK_REALTIME> не подходят для таких "
+"приложений, так как эти часы подвержены скачкообразным изменениям системных "
+"часов."
+
+#. 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 "B<CLOCK_REALTIME_ALARM> (начиная с Linux 3.0)"
+
+#. 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 ""
+"Эти часы подобны B<CLOCK_REALTIME>, но разбудят систему, если она находится "
+"с состоянии ожидания. Для установки таймера по этим часам вызывающий должен "
+"иметь мандат B<CAP_WAKE_ALARM>."
+
+#. 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 "B<CLOCK_BOOTTIME_ALARM> (начиная с Linux 3.0)"
+
+#. 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 ""
+"Эти часы подобны B<CLOCK_BOOTTIME>, но разбудят систему, если она находится "
+"с состоянии ожидания. Для установки таймера по этим часам вызывающий должен "
+"иметь мандат B<CAP_WAKE_ALARM>."
+
+#. 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 "B<CLOCK_TAI> (начиная с Linux 3.10)"
+
+#. 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 ""
+"Помимо значений, перечисленных ранее, в I<clockid> может быть указано "
+"I<clockid>, возвращённое вызовом B<clock_getcpuclockid>(3) или "
+"B<pthread_getcpuclockid>(3)."
+
+#. type: Plain text
+#: archlinux fedora-40 fedora-rawhide mageia-cauldron
+#, fuzzy
+#| 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)."
+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 ""
+"Аргумент I<sevp> указывает на структуру I<sigevent>, которая задаёт способ "
+"уведомления вызывающего при срабатывании таймера. Определение и описание "
+"структуры смотрите в B<sigevent>(7)."
+
+#. 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 "В поле I<sevp.sigev_notify> можно указать следующие значения:"
+
+#. 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 "B<SIGEV_NONE>"
+
+#. 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 ""
+"Выполнять синхронное уведомление при срабатывании таймера. Ход таймера можно "
+"отслеживать с помощью B<timer_gettime>(2)."
+
+#. 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 "B<SIGEV_SIGNAL>"
+
+#. type: Plain text
+#: archlinux fedora-40 fedora-rawhide mageia-cauldron
+#, fuzzy
+#| 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."
+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 ""
+"При срабатывании таймера генерировать для процесса сигнал I<sigev_signo>. "
+"Подробности смотрите в B<sigevent>(7). Полю I<si_code> структуры "
+"I<siginfo_t> присваивается значение B<SI_TIMER>. В любой момент времени для "
+"таймера в очередь процесса ставится не более одного сигнала; подробности "
+"смотрите в B<timer_getoverrun>(2)."
+
+#. 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 "B<SIGEV_THREAD>"
+
+#. type: Plain text
+#: archlinux fedora-40 fedora-rawhide mageia-cauldron
+#, fuzzy
+#| 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."
+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 ""
+"При срабатывании вызвать I<sigev_notify_function>, как если бы это была "
+"начальная функция новой нити. Подробности смотрите в B<sigevent>(7)."
+
+#. 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 "B<SIGEV_THREAD_ID> (есть только в Linux)"
+
+#. 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 ""
+"Как для B<SIGEV_SIGNAL>, но сигнал нацелен на нить, чей ID указывается в "
+"I<sigev_notify_thread_id>, который должен быть нитью того же процесса что и "
+"вызывающий. В поле I<sigev_notify_thread_id> указывается ID ядерной нити, то "
+"есть значение, возвращаемое B<clone>(2) или B<gettid>(2). Этот флаг "
+"предназначен только для использования в библиотеках нитей."
+
+#. 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 ""
+"Указание в I<sevp> значения NULL эквивалентно указанию указателя на "
+"структуру I<sigevent>, в которой I<sigev_notify> равно B<SIGEV_SIGNAL>, "
+"I<sigev_signo> равно B<SIGALRM> и I<sigev_value.sival_int> равно ID таймера."
+
+#. 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 ""
+"При успешном выполнении B<timer_create>() возвращается 0 и ID нового таймера "
+"помещается в I<*timerid>. При ошибке возвращается -1, а I<errno> "
+"устанавливается в соответствующее значение."
+
+#. 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 "B<EAGAIN>"
+
+#. 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 "B<EINVAL>"
+
+#. 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 ""
+"Некорректный ID часов, I<sigev_notify>, I<sigev_signo> или "
+"I<sigev_notify_thread_id>."
+
+#. 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 "B<ENOMEM>"
+
+#. 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 "B<ENOTSUP>"
+
+#. 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 "B<EPERM>"
+
+#. 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 "Отличия между библиотекой C и ядром"
+
+#. 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 ""
+"Частично, реализация программного интерфейса таймеров POSIX предоставляется "
+"glibc. А именно:"
+
+#. type: IP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "\\[bu]"
+msgstr "\\[bu]"
+
+#. 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 ""
+"Большая часть функций для B<SIGEV_THREAD> реализована в glibc, а не в ядре "
+"(это необходимо, так как в обработку уведомления вовлечена нить, которая "
+"должна управляться библиотекой C, реализующей нити POSIX). Хотя уведомление "
+"доставляется процессу через нить, внутри реализации NPTL для "
+"B<SIGEV_THREAD_ID> используется значение I<sigev_notify> и сигнал реального "
+"времени, который зарезервирован для реализации (смотрите B<nptl>(7))."
+
+#. 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 ""
+"Стандартная ситуация, когда I<evp> равно NULL, обрабатывается в glibc, где "
+"вызывается нижележащий системный вызов с заполненной подходящим образом "
+"структурой I<sigevent>."
+
+#. 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 ""
+"Идентификаторы таймеров, обрабатываемые на уровне пользователя, "
+"поддерживаются glibc, которая отображает эти ID в ID таймеров, созданных "
+"ядром."
+
+#. 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 "POSIX.1-2008."
+
+#. 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
+#, fuzzy
+#| msgid "glibc 2.1. C99, POSIX.1-2001."
+msgid "Linux 2.6. POSIX.1-2001."
+msgstr "glibc 2.1. C99, POSIX.1-2001."
+
+#. glibc commit 93a78ac437ba44f493333d7e2a4b0249839ce460
+#. type: Plain text
+#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron
+#: opensuse-leap-15-6 opensuse-tumbleweed
+#, fuzzy
+#| 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 in glibc "
+#| "versions before 2.17, the implementation falls back to this technique on "
+#| "systems running pre-2.6 Linux kernels."
+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 ""
+"Системные таймерные вызовы POSIX впервые появились в Linux 2.6. До этого в "
+"glibc была неполная реализация в пространстве пользователя (только таймеры "
+"B<CLOCK_REALTIME>) с использованием нитей POSIX, а реализация glibc до "
+"версии 2.17 переключается на неё в системах с ядрами до Linux 2.6."
+
+#. 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 ""
+"С помощью B<timer_create>() программа может создавать несколько интервальных "
+"таймеров."
+
+#. 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 ""
+"Таймеры не наследуются в потомке после B<fork>(2), и выключаются и удаляются "
+"при B<execve>(2)."
+
+#. 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 ""
+"Ядро заранее выделяет «сигнал реального времени в очереди» для каждого "
+"таймера, создаваемого B<timer_create>(). В результате, количество таймеров "
+"ограничено ресурсом B<RLIMIT_SIGPENDING> (смотрите B<setrlimit>(2))."
+
+#. 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 ""
+"Таймеры, созданные B<timer_create>(), часто называют «(интервальными) "
+"таймерами POSIX». Программный интерфейс таймеров POSIX состоит из следующих "
+"интерфейсов:"
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, fuzzy, no-wrap
+#| msgid "B<timer_create>():"
+msgid "B<timer_create>()"
+msgstr "B<timer_create>():"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, fuzzy
+#| msgid " /* Create the timer. */\n"
+msgid "Create a timer."
+msgstr " /* Создаём таймер. */\n"
+
+#. 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 "B<timer_settime>(2)"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, fuzzy
+#| msgid "B<timer_settime>(2): Arm (start) or disarm (stop) a timer."
+msgid "Arm (start) or disarm (stop) a timer."
+msgstr ""
+"B<timer_settime>(2): Включает (запускает) или выключает (останавливает) "
+"таймер."
+
+#. 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 "B<timer_gettime>(2)"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, fuzzy
+#| msgid ""
+#| "B<timer_gettime>(2): Fetch the time remaining until the next expiration "
+#| "of a timer, along with the interval setting of the timer."
+msgid ""
+"Fetch the time remaining until the next expiration of a timer, along with "
+"the interval setting of the timer."
+msgstr ""
+"B<timer_gettime>(2): Возвращает время, оставшееся до следующего срабатывания "
+"таймера вместе с интервалом, заданным в таймере."
+
+#. 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 "B<timer_getoverrun>(2)"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, fuzzy
+#| msgid ""
+#| "B<timer_getoverrun>(2): Return the overrun count for the last timer "
+#| "expiration."
+msgid "Return the overrun count for the last timer expiration."
+msgstr ""
+"B<timer_getoverrun>(2): Возвращает счётчик переполнения после последнего "
+"срабатывания таймера."
+
+#. 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 "B<timer_delete>(2)"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, fuzzy
+#| msgid "B<timer_delete>(2): Disarm and delete a timer."
+msgid "Disarm and delete a timer."
+msgstr "B<timer_delete>(2): Выключает и удаляет таймер."
+
+#. 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 ""
+"Начиная с Linux 3.10, файл I</proc/>pidI</timers> можно использовать для "
+"просмотра списка таймеров POSIX для процесса с PID равным I<pid>. "
+"Подробности смотрите в B<proc>(5)."
+
+#. 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 ""
+"Начиная с Linux 4.10, поддержка таймеров POSIX теперь необязательна и "
+"включена по умолчанию. Поддержку в ядре можно выключить через параметр "
+"B<CONFIG_POSIX_TIMERS>."
+
+#. 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 ""
+"В следующем примере программа спит 1 секунду после создания таймера, который "
+"работает с частотой 100 наносекунд. За время разблокировки и доставки "
+"сигнала, произошло около 10 миллионов переполнений."
+
+#. 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 ""
+"./$ B<./a.out 1 100>\n"
+"Устанавливается обработчик сигнала 34\n"
+"Блокируется сигнал 34\n"
+"ID таймера — 0x804c008\n"
+"Спим 1 секунду\n"
+"Разблокируется сигнал 34\n"
+"Пойман сигнал 34\n"
+" sival_ptr = 0xbfb174f4; *sival_ptr = 0x804c008\n"
+" счётчик переполнения = 10004886\n"
+
+#. 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
+#, fuzzy
+#| 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)"
+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 ""
+"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)"
+
+#. type: TH
+#: debian-bookworm
+#, no-wrap
+msgid "2023-02-05"
+msgstr "5 февраля 2023 г."
+
+#. type: TH
+#: debian-bookworm
+#, no-wrap
+msgid "Linux man-pages 6.03"
+msgstr "Linux man-pages 6.03"
+
+#. 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 ""
+"Аргумент I<sevp> указывает на структуру I<sigevent>, которая задаёт способ "
+"уведомления вызывающего при срабатывании таймера. Определение и описание "
+"структуры смотрите в B<sigevent>(7)."
+
+#. 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 ""
+"При срабатывании таймера генерировать для процесса сигнал I<sigev_signo>. "
+"Подробности смотрите в B<sigevent>(7). Полю I<si_code> структуры "
+"I<siginfo_t> присваивается значение B<SI_TIMER>. В любой момент времени для "
+"таймера в очередь процесса ставится не более одного сигнала; подробности "
+"смотрите в B<timer_getoverrun>(2)."
+
+#. 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 ""
+"При срабатывании вызвать I<sigev_notify_function>, как если бы это была "
+"начальная функция новой нити. Подробности смотрите в B<sigevent>(7)."
+
+#. type: Plain text
+#: debian-bookworm
+msgid "This system call is available since Linux 2.6."
+msgstr "Данный системный вызов появился в Linux 2.6."
+
+#. type: Plain text
+#: debian-bookworm
+msgid "POSIX.1-2001, POSIX.1-2008."
+msgstr "POSIX.1-2001, POSIX.1-2008."
+
+#. glibc commit 93a78ac437ba44f493333d7e2a4b0249839ce460
+#. type: Plain text
+#: debian-bookworm
+#, fuzzy
+#| 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 in glibc "
+#| "versions before 2.17, the implementation falls back to this technique on "
+#| "systems running pre-2.6 Linux kernels."
+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 ""
+"Системные таймерные вызовы POSIX впервые появились в Linux 2.6. До этого в "
+"glibc была неполная реализация в пространстве пользователя (только таймеры "
+"B<CLOCK_REALTIME>) с использованием нитей POSIX, а реализация glibc до "
+"версии 2.17 переключается на неё в системах с ядрами до Linux 2.6."
+
+#. 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 ""
+"#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"
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid ""
+"#define CLOCKID CLOCK_REALTIME\n"
+"#define SIG SIGRTMIN\n"
+msgstr ""
+"#define CLOCKID CLOCK_REALTIME\n"
+"#define SIG SIGRTMIN\n"
+
+#. 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 ""
+"#define errExit(msg) do { perror(msg); exit(EXIT_FAILURE); \\e\n"
+" } while (0)\n"
+
+#. 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 ""
+"static void\n"
+"print_siginfo(siginfo_t *si)\n"
+"{\n"
+" int or;\n"
+" timer_t *tidp;\n"
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid " tidp = si-E<gt>si_value.sival_ptr;\n"
+msgstr " tidp = si-E<gt>si_value.sival_ptr;\n"
+
+#. 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 ""
+" printf(\" sival_ptr = %p; \", si-E<gt>si_value.sival_ptr);\n"
+" printf(\" *sival_ptr = %#jx\\en\", (uintmax_t) *tidp);\n"
+
+#. 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 ""
+" or = timer_getoverrun(*tidp);\n"
+" if (or == -1)\n"
+" errExit(\"timer_getoverrun\");\n"
+" else\n"
+" printf(\" счётчик переполнения = %d\\en\", or);\n"
+"}\n"
+
+#. 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 ""
+"static void\n"
+"handler(int sig, siginfo_t *si, void *uc)\n"
+"{\n"
+" /* Замечание: вызов printf() из обработчика сигнала небезопасен\n"
+" (и не должен выполняться в готовых программах), так как\n"
+" printf() не async-signal-safe; смотрите signal-safety(7).\n"
+" Тем не менее, здесь мы используем printf(), так как это простой\n"
+" способ показать когда вызывается обработчик. */\n"
+
+#. 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 ""
+" printf(\"Пойман сигнал %d\\en\", sig);\n"
+" print_siginfo(si);\n"
+" signal(sig, SIG_IGN);\n"
+"}\n"
+
+#. 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 ""
+"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"
+
+#. 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 ""
+" if (argc != 3) {\n"
+" fprintf(stderr, \"Использование: %s E<lt>secsE<gt> E<lt>nsecsE<gt>\\en\",\n"
+" argv[0]);\n"
+" exit(EXIT_FAILURE);\n"
+" }\n"
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid " /* Establish handler for timer signal. */\n"
+msgstr " /* Устанавливаем обработчик для сигнала таймера. */\n"
+
+#. 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 ""
+" printf(\"Устанавливается обработчик сигнала %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"
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid " /* Block timer signal temporarily. */\n"
+msgstr " /* Временно блокируем сигнал таймера. */\n"
+
+#. 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 ""
+" printf(\"Блокируется сигнал %d\\en\", SIG);\n"
+" sigemptyset(&mask);\n"
+" sigaddset(&mask, SIG);\n"
+" if (sigprocmask(SIG_SETMASK, &mask, NULL) == -1)\n"
+" errExit(\"sigprocmask\");\n"
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid " /* Create the timer. */\n"
+msgstr " /* Создаём таймер. */\n"
+
+#. 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 ""
+" 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"
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid " printf(\"timer ID is %#jx\\en\", (uintmax_t) timerid);\n"
+msgstr " printf(\"ID таймера %#jx\\en\", (uintmax_t) timerid);\n"
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid " /* Start the timer. */\n"
+msgstr " /* Запускаем таймер. */\n"
+
+#. 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 ""
+" 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"
+
+#. 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 ""
+" if (timer_settime(timerid, 0, &its, NULL) == -1)\n"
+" errExit(\"timer_settime\");\n"
+
+#. 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 ""
+" /* Ненадолго засыпаем; за это время, таймер может сработать\n"
+" несколько раз. */\n"
+
+#. 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 ""
+" printf(\"Спим %d секунду\\en\", atoi(argv[1]));\n"
+" sleep(atoi(argv[1]));\n"
+
+#. 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 ""
+" /* Разблокируем сигнал таймера, чтобы доставлялись\n"
+" уведомления таймера. */\n"
+
+#. 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 ""
+" printf(\"Разблокируется сигнал %d\\en\", SIG);\n"
+" if (sigprocmask(SIG_UNBLOCK, &mask, NULL) == -1)\n"
+" errExit(\"sigprocmask\");\n"
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid ""
+" exit(EXIT_SUCCESS);\n"
+"}\n"
+msgstr ""
+" exit(EXIT_SUCCESS);\n"
+"}\n"
+
+#. 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 ""
+"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)"
+
+#. type: TH
+#: debian-unstable opensuse-tumbleweed
+#, no-wrap
+msgid "2023-05-03"
+msgstr "3 мая 2023 г."
+
+#. type: TH
+#: debian-unstable opensuse-tumbleweed
+#, no-wrap
+msgid "Linux man-pages 6.05.01"
+msgstr "Linux man-pages 6.05.01"
+
+#. type: TH
+#: opensuse-leap-15-6
+#, no-wrap
+msgid "2023-03-30"
+msgstr "30 марта 2023 г."
+
+#. type: TH
+#: opensuse-leap-15-6
+#, no-wrap
+msgid "Linux man-pages 6.04"
+msgstr "Linux man-pages 6.04"