diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-15 19:43:11 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-15 19:43:11 +0000 |
commit | fc22b3d6507c6745911b9dfcc68f1e665ae13dbc (patch) | |
tree | ce1e3bce06471410239a6f41282e328770aa404a /po/ru/man2/timer_create.2.po | |
parent | Initial commit. (diff) | |
download | manpages-l10n-fc22b3d6507c6745911b9dfcc68f1e665ae13dbc.tar.xz manpages-l10n-fc22b3d6507c6745911b9dfcc68f1e665ae13dbc.zip |
Adding upstream version 4.22.0.upstream/4.22.0
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'po/ru/man2/timer_create.2.po')
-rw-r--r-- | po/ru/man2/timer_create.2.po | 1497 |
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" |