# Russian translation of manpages # This file is distributed under the same license as the manpages-l10n package. # Copyright © of this file: # Azamat Hackimov , 2014, 2016-2017. # Dmitry Bolkhovskikh , 2017. # Yuri Kozlov , 2011-2019. # Иван Павлов , 2017, 2019. msgid "" msgstr "" "Project-Id-Version: manpages-l10n\n" "POT-Creation-Date: 2024-06-01 06:31+0200\n" "PO-Revision-Date: 2019-09-16 18:46+0300\n" "Last-Translator: Yuri Kozlov \n" "Language-Team: Russian \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 "timerfd_create" msgstr "timerfd_create" #. type: TH #: archlinux debian-unstable opensuse-tumbleweed #, no-wrap msgid "2024-05-02" msgstr "2 мая 2024 г." #. type: TH #: archlinux debian-unstable #, fuzzy, no-wrap #| msgid "Linux man-pages 6.7" msgid "Linux man-pages 6.8" msgstr "Linux man-pages 6.7" #. type: SH #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "NAME" msgstr "ИМЯ" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "timerfd_create, timerfd_settime, timerfd_gettime - timers that notify via " "file descriptors" msgstr "" "timerfd_create, timerfd_settime, timerfd_gettime - таймеры, уведомляющие " "через файловые дескрипторы" #. type: SH #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "LIBRARY" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "Standard C library (I, I<-lc>)" msgstr "" #. type: SH #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "SYNOPSIS" msgstr "СИНТАКСИС" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "B<#include Esys/timerfd.hE>\n" msgstr "B<#include Esys/timerfd.hE>\n" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "BIB<, int >IB<);>\n" msgstr "BIB<, int >IB<);>\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 "" #| "BIB<, int >IB<,>\n" #| "B< const struct itimerspec *>IB<,>\n" #| "B< struct itimerspec *>IB<);>\n" #| "BIB<, struct itimerspec *>IB<);>\n" msgid "" "BIB<, int >IB<,>\n" "B< const struct itimerspec *>IB<,>\n" "B< struct itimerspec *_Nullable >IB<);>\n" "BIB<, struct itimerspec *>IB<);>\n" msgstr "" "BIB<, int >IB<,>\n" "B< const struct itimerspec *>IB<,>\n" "B< struct itimerspec *>IB<);>\n" "BIB<, struct itimerspec *>IB<);>\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 "" "These system calls create and operate on a timer that delivers timer " "expiration notifications via a file descriptor. They provide an alternative " "to the use of B(2) or B(2), with the advantage " "that the file descriptor may be monitored by B(2), B(2) и " "B(7)." #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "The use of these three system calls is analogous to the use of " "B(2), B(2), and B(2). (There is " "no analog of B(2), since that functionality is provided by " "B(2), as described below.)" msgstr "" "Использование данных трёх системных вызовов аналогично B(2), " "B(2) и B(2) (аналога B(2) " "нет, так как его возможности предоставляет B(2) как описано ниже)." #. type: SS #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "timerfd_create()" msgstr "timerfd_create()" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "B() creates a new timer object, and returns a file " "descriptor that refers to that timer. The I argument specifies the " "clock that is used to mark the progress of the timer, and must be one of the " "following:" msgstr "" "Вызов B() создаёт новый объект таймера и возвращает файловый " "дескриптор, который ссылается на этот таймер. В аргументе I " "задаются часы, которые используются для хода таймера; значением должно быть " "одно из следующих:" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "B" msgstr "B" #. 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" msgstr "B" #. 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 (Since Linux 3.15)" msgstr "B (начиная с Linux 3.15)" #. commit 4a2378a943f09907fb1ae35c15de917f60289c14 #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "Like B, this is a monotonically increasing clock. However, " "whereas the B clock does not measure the time while a " "system is suspended, the B clock does include the time " "during which the system is suspended. This is useful for applications that " "need to be suspend-aware. B is not suitable for such " "applications, since that clock is affected by discontinuous changes to the " "system clock." msgstr "" "Подобно B, представляет монотонно растущие часы. Однако, " "если часы B не отсчитывают время когда система находится в " "состоянии ожидания (suspended), а часы B учитывают время в " "таком состоянии системы. Это полезно приложениям, которым необходимо " "учитывать состояние ожидания. B не подходят для таких " "приложений, так как эти часы подвержены скачкообразным изменениям системных " "часов." #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "B (since Linux 3.11)" msgstr "B (начиная с Linux 3.11)" #. commit 11ffa9d6065f344a9bd769a2452f26f2f671e5f8 #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "This clock is like B, but will wake the system if it is " "suspended. The caller must have the B capability in order " "to set a timer against this clock." msgstr "" "Эти часы подобны B, но разбудят систему, если она находится " "с состоянии ожидания. Для установки таймера по этим часам вызывающий должен " "иметь мандат B." #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "B (since Linux 3.11)" msgstr "B (начиная с Linux 3.11)" #. commit 11ffa9d6065f344a9bd769a2452f26f2f671e5f8 #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "This clock is like B, but will wake the system if it is " "suspended. The caller must have the B capability in order " "to set a timer against this clock." msgstr "" "Эти часы подобны B, но разбудят систему, если она находится " "с состоянии ожидания. Для установки таймера по этим часам вызывающий должен " "иметь мандат B." #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "See B(2) for some further details on the above clocks." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "The current value of each of these clocks can be retrieved using " "B(2)." msgstr "" "Текущее значение каждого из этих часов можно получить с помощью " "B(2)." #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "Starting with Linux 2.6.27, the following values may be bitwise ORed in " "I to change the behavior of B():" msgstr "" "Начиная с Linux 2.6.27, для изменения поведения B() можно " "использовать следующие значения I (через OR):" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "B" msgstr "B" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "Set the B file status flag on the open file description (see " "B(2)) referred to by the new file descriptor. Using this flag saves " "extra calls to B(2) to achieve the same result." msgstr "" "Устанавливает флаг состояния файла B для нового открытого " "файлового описания (смотрите B(2)), на которое ссылается новый " "файловый дескриптор. Использование данного флага делает ненужными " "дополнительные вызовы B(2) для достижения того же результата." #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "B" msgstr "B" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "Set the close-on-exec (B) flag on the new file descriptor. See " "the description of the B flag in B(2) for reasons why this " "may be useful." msgstr "" "Устанавливает флаг close-on-exec (B) для нового открытого " "файлового дескриптора. Смотрите описание флага B в B(2) для " "того, чтобы узнать как это может пригодиться." #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "In Linux versions up to and including 2.6.26, I must be specified as " "zero." msgstr "До Linux 2.6.26 включительно аргумент I должен быть равен нулю." #. type: SS #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "timerfd_settime()" msgstr "timerfd_settime()" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "B() arms (starts) or disarms (stops) the timer referred " "to by the file descriptor I." msgstr "" "Вызов B() запускает или останавливает таймер, на который " "ссылается файловый дескриптор I." #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, fuzzy #| msgid "" #| "The I argument specifies the initial expiration and interval " #| "for the timer. The I structure used for this argument " #| "contains two fields, each of which is in turn a structure of type " #| "I:" msgid "" "The I argument specifies the initial expiration and interval for " "the timer. The I structure used for this argument is described " "in B(3type)." msgstr "" "В аргументе I задаётся начальное срабатывание и интервал таймера. " "Для этого аргумента используется структура I, содержащая два " "поля, каждое из которых, в свою очередь, является структурой I:" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "I specifies the initial expiration of the timer, in " "seconds and nanoseconds. Setting either field of I to a " "nonzero value arms the timer. Setting both fields of I " "to zero disarms the timer." msgstr "" "В I задаётся первое срабатывание таймера, в секундах и " "наносекундах. Установка любого из полей I в ненулевое " "значение включает таймер. Установка обоих полей I в ноль " "выключает таймер." #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "Setting one or both fields of I to nonzero values " "specifies the period, in seconds and nanoseconds, for repeated timer " "expirations after the initial expiration. If both fields of I are zero, the timer expires just once, at the time specified by " "I." msgstr "" "Установка одного или обоих полей I в ненулевое " "значение задаёт период, в секундах и наносекундах, периодического " "срабатывания таймера после первого срабатывания. Если оба поля I равны нулю, то таймер срабатывает только один раз, во время, " "указанное в I." #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "By default, the initial expiration time specified in I is " "interpreted relative to the current time on the timer's clock at the time of " "the call (i.e., I specifies a time relative to the " "current value of the clock specified by I). An absolute timeout " "can be selected via the I argument." msgstr "" "По умолчанию, начальное время срабатывания, задаваемое в I, " "считается относительно текущего времени часов таймера на момент вызова (т. " "е., в I задаётся время относительно текущего значения " "часов, заданных в I). Использование абсолютной задержки можно " "включить через аргумент I." #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "The I argument is a bit mask that can include the following values:" msgstr "" "Аргумент I является битовой маской, которая может включать следующие " "значения:" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "B" msgstr "B" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "Interpret I as an absolute value on the timer's clock. " "The timer will expire when the value of the timer's clock reaches the value " "specified in I." msgstr "" "Считать I абсолютным значением часов таймера. Таймер " "сработает, когда значение часов таймера достигнет значения, указанного в " "I." #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "B" msgstr "B" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "If this flag is specified along with B and the clock for " "this timer is B or B, then mark this " "timer as cancelable if the real-time clock undergoes a discontinuous change " "(B(2), B(2), or similar). When such changes " "occur, a current or future B(2) from the file descriptor will fail " "with the error B." msgstr "" "Если этот флаг указан вместе с B и часами этого таймера " "являются B или B, то помечать этот " "таймер как отменяемый, если часы реального времени подвергнуться " "скачкообразному изменению (B(2), B(2) или " "подобными). Когда такие изменения происходят, текущий или будущий вызова " "B(2) для файлового дескриптора завершается с ошибкой B." #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "If the I argument is not NULL, then the I structure " "that it points to is used to return the setting of the timer that was " "current at the time of the call; see the description of " "B() following." msgstr "" "Если I не равно NULL, то это указатель на структуру " "I, и он будет использоваться для возврата текущих на момент " "вызова настроек таймера; смотрите описание B() далее." #. type: SS #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "timerfd_gettime()" msgstr "timerfd_gettime()" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "B() returns, in I, an I structure " "that contains the current setting of the timer referred to by the file " "descriptor I." msgstr "" "Вызов B() возвращает в I, которое указывает на " "структуру I, текущие настройки таймера, на который ссылается " "файловый дескриптор I." #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "The I field returns the amount of time until the timer will next " "expire. If both fields of this structure are zero, then the timer is " "currently disarmed. This field always contains a relative value, regardless " "of whether the B flag was specified when setting the " "timer." msgstr "" "В поле I возвращается время до следующего срабатывания таймера. " "Если оба поля этой структуры равны нулю, то таймер в данный момент не " "запущен. Это поле всегда содержит относительное значение, независимо от " "того, был ли указан флаг B при настройке таймера." #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "The I field returns the interval of the timer. If both fields " "of this structure are zero, then the timer is set to expire just once, at " "the time specified by I." msgstr "" "В поле I возвращается интервал таймера. Если оба поля этой " "структуры равны нулю, то таймер настроен на однократное срабатывание, на " "время, заданное в I." #. type: SS #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "Operating on a timer file descriptor" msgstr "Работа с файловым дескриптором таймера" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, fuzzy #| msgid "" #| "The file descriptor returned by B() supports the " #| "following operations:" msgid "" "The file descriptor returned by B() supports the following " "additional operations:" msgstr "" "Файловый дескриптор, возвращаемый B(), поддерживает " "следующие операции:" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "B(2)" msgstr "B(2)" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, fuzzy #| msgid "" #| "If the timer has already expired one or more times since its settings " #| "were last modified using B(), or since the last " #| "successful B(2), then the buffer given to B(2) returns an " #| "unsigned 8-byte integer (I) containing the number of " #| "expirations that have occurred. (The returned value is in host byte order" #| "\\(emthat is, the native byte order for integers on the host machine.)" msgid "" "If the timer has already expired one or more times since its settings were " "last modified using B(), or since the last successful " "B(2), then the buffer given to B(2) returns an unsigned 8-byte " "integer (I) containing the number of expirations that have " "occurred. (The returned value is in host byte order\\[em]that is, the " "native byte order for integers on the host machine.)" msgstr "" "Если таймер уже сработал один или более раз с момента настройки с помощью " "B(), или после последнего успешного B(2), то в буфер, " "указанный в B(2), будет возвращено беззнаковое 8-байтное целое " "(I), содержащее количество произошедших срабатываний (возвращаемое " "значение хранится в порядке байт узла, то есть родном порядке для целых " "чисел машины выполнения)." #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "If no timer expirations have occurred at the time of the B(2), then " "the call either blocks until the next timer expiration, or fails with the " "error B if the file descriptor has been made nonblocking (via the " "use of the B(2) B operation to set the B flag)." msgstr "" "Если таймер ещё не срабатывал до вызова B(2), то вызов блокирует " "выполнение до следующего срабатывания таймера, или завершается с ошибкой " "B, если файловый дескриптор был создан неблокирующим (с помощью " "вызова B(2) и операции B с флагом B)." #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "A B(2) fails with the error B if the size of the supplied " "buffer is less than 8 bytes." msgstr "" "Вызов B(2) завершается ошибкой B, если размер указанного " "буфера будет меньше 8 байт." #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "If the associated clock is either B or " "B, the timer is absolute (B), and " "the flag B was specified when calling " "B(), then B(2) fails with the error B if " "the real-time clock undergoes a discontinuous change. (This allows the " "reading application to discover such discontinuous changes to the clock.)" msgstr "" "Если используются часы B или B, таймер " "является абсолютным (B) и при вызове B() " "указан флаг B, то B(2) завершается ошибкой " "B, если часы реального времени подвергнуться скачкообразному " "изменению (это позволяет читающему приложению обнаружить такие " "скачкообразные изменения часов)." #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, fuzzy #| msgid "" #| "If the associated clock is either B or " #| "B, the timer is absolute (B), " #| "and the flag B was specified when calling " #| "B(), then B(2) fails with the error B " #| "if the real-time clock undergoes a discontinuous change. (This allows " #| "the reading application to discover such discontinuous changes to the " #| "clock.)" msgid "" "If the associated clock is either B or " "B, the timer is absolute (B), and " "the flag B was I specified when calling " "B(), then a discontinuous negative change to the clock (e." "g., B(2)) may cause B(2) to unblock, but return a " "value of 0 (i.e., no bytes read), if the clock change occurs after the time " "expired, but before the B(2) on the file descriptor." msgstr "" "Если используются часы B или B, таймер " "является абсолютным (B) и при вызове B() " "указан флаг B, то B(2) завершается ошибкой " "B, если часы реального времени подвергнуться скачкообразному " "изменению (это позволяет читающему приложению обнаружить такие " "скачкообразные изменения часов)." #. type: TP #: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron #: opensuse-tumbleweed #, no-wrap msgid "B(2)" msgstr "B(2)" #. type: TQ #: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron #: opensuse-tumbleweed #, no-wrap msgid "B(2)" #. type: TQ #: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron #: opensuse-tumbleweed #, no-wrap msgid "(and similar)" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "The file descriptor is readable (the B(2) аргумент I; " "в B(2) флаг B), если произошло одно или более срабатываний " "таймера." #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "The file descriptor also supports the other file-descriptor multiplexing " "APIs: B(2), B(2), and B(7)." msgstr "" "Файловый дескриптор также поддерживает другие мультиплексные вызовы: " "B(2), B(2) и B(7)." #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "B(2)" msgstr "B(2)" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "The following timerfd-specific command is supported:" msgstr "Поддерживается следующая команда, относящаяся к timerfd:" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "B (since Linux 3.17)" msgstr "B (начиная с Linux 3.17)" #. commit 5442e9fbd7c23172a1c9bc736629cd123a9923f0 #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "Adjust the number of timer expirations that have occurred. The argument is " "a pointer to a nonzero 8-byte integer (I*) containing the new " "number of expirations. Once the number is set, any waiter on the timer is " "woken up. The only purpose of this command is to restore the expirations " "for the purpose of checkpoint/restore. This operation is available only if " "the kernel was configured with the B option." msgstr "" "Корректирует количество истечений таймера, которые произошли. Аргументом " "является указатель на ненулевое 8-байтовое целое (I*), содержащее " "новое количество истечений. После установки количества, все ожидающие " "таймера пробуждаются. Единственная цель данной команды — восстановить " "истечений для отсечки/восстановления. Данная операция доступна только, если " "ядро собрано с параметром B." #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "B(2)" msgstr "B(2)" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "When the file descriptor is no longer required it should be closed. When " "all file descriptors associated with the same timer object have been closed, " "the timer is disarmed and its resources are freed by the kernel." msgstr "" "Если файловый дескриптор больше не требуется, его нужно закрыть. Когда все " "файловые дескрипторы, связанные с одним объектом таймера, будут закрыты, " "таймер выключается и ядро освобождает его ресурсы." #. type: SS #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "fork(2) semantics" msgstr "Поведение при fork(2)" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "After a B(2), the child inherits a copy of the file descriptor created " "by B(). The file descriptor refers to the same underlying " "timer object as the corresponding file descriptor in the parent, and " "B(2)s in the child will return information about expirations of the " "timer." msgstr "" "После B(2) потомки наследуют копию файлового дескриптора, созданного " "B(). Файловый дескриптор потомка ссылается на тот же объект " "таймера, что и файловый дескриптор его родителя, и операция B(2) в " "потомке будет возвращать информацию о срабатываниях таймера." #. type: SS #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "execve(2) semantics" msgstr "Поведение при execve(2)" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "A file descriptor created by B() is preserved across " "B(2), and continues to generate timer expirations if the timer was " "armed." msgstr "" "Файловый дескриптор, созданный B(), сохраняется при " "B(2), и продолжает генерировать срабатывания таймера, если он " "включён." #. 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() returns a new file descriptor. On error, " "-1 is returned and I is set to indicate the error." msgstr "" "При успешном выполнении B() возвращает новый файловый " "дескриптор. При ошибке возвращается -1, и I устанавливается в " "соответствующее значение." #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "B() and B() return 0 on success; on " "error they return -1, and set I to indicate the error." msgstr "" "При успешном выполнении B() и B() " "возвращают 0; в случае ошибки возвращается -1, а I устанавливается в " "соответствующее значение ошибки." #. type: SH #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "ERRORS" msgstr "ОШИБКИ" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "B() can fail with the following errors:" msgstr "Вызов B() может завершиться со следующими ошибками:" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "B" msgstr "B" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, fuzzy #| msgid "I is invalid." msgid "The I is not valid." msgstr "Неверное значение I." #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "I is invalid; or, in Linux 2.6.26 or earlier, I is nonzero." msgstr "" "Неправильное значение I или, для Linux 2.6.26 и старее, I не " "равно 0." #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "B" msgstr "B" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "The per-process limit on the number of open file descriptors has been " "reached." msgstr "" "Было достигнуто ограничение по количеству открытых файловых дескрипторов на " "процесс." #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "B" msgstr "B" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "The system-wide limit on the total number of open files has been reached." msgstr "Достигнуто максимальное количество открытых файлов в системе." #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "B" msgstr "B" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "Could not mount (internal) anonymous inode device." msgstr "Не удалось смонтировать (внутреннее) безымянное устройство inode." #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "B" msgstr "B" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "There was insufficient kernel memory to create the timer." msgstr "Недостаточно памяти ядра для создания таймера." #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "B" msgstr "B" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "I was B or B but the " "caller did not have the B capability." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "B() and B() can fail with the following " "errors:" msgstr "" "Вызовы B() и B() могут завершаться со " "следующими ошибками:" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "B" msgstr "B" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "I is not a valid file descriptor." msgstr "Значение I не является правильным файловым дескриптором." #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "B" msgstr "B" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "I, I, or I is not a valid pointer." msgstr "Некорректный указатель I, I или I." #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "I is not a valid timerfd file descriptor." msgstr "Значение I не является правильным файловым дескриптором timerfd." #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "B() can also fail with the following errors:" msgstr "" "Вызов B() также может завершиться со следующими ошибками:" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "B" msgstr "B" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "See NOTES." msgstr "Смотрите ЗАМЕЧАНИЯ." #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "I is not properly initialized (one of the I falls " "outside the range zero to 999,999,999)." msgstr "" "Значение I некорректно инициализировано (одно из I вне " "диапазона от 0 до 999999999)." #. This case only checked since Linux 2.6.29, and Linux 2.2.2[78].some-stable-version. #. In older kernel versions, no check was made for invalid flags. #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "I is invalid." msgstr "Значение I неверно." #. type: SH #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "STANDARDS" msgstr "СТАНДАРТЫ" #. type: Plain text #: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron #: opensuse-leap-15-6 opensuse-tumbleweed msgid "Linux." msgstr "Linux." #. type: SH #: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron #: opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "HISTORY" msgstr "ИСТОРИЯ" #. type: Plain text #: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron #: opensuse-leap-15-6 opensuse-tumbleweed msgid "Linux 2.6.25, glibc 2.8." msgstr "" #. type: SH #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "NOTES" msgstr "ПРИМЕЧАНИЯ" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "Suppose the following scenario for B or " "B timer that was created with B():" msgstr "" #. type: IP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "(1)" msgstr "(1)" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "The timer has been started (B()) with the " "B and B flags;" msgstr "" #. type: IP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "(2)" msgstr "(2)" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "A discontinuous change (e.g., B(2)) is subsequently made to " "the B clock; and" msgstr "" #. type: IP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "(3)" msgstr "(3)" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "the caller once more calls B() to rearm the timer (without " "first doing a B(2) on the file descriptor)." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, fuzzy #| msgid "Note the following:" msgid "In this case the following occurs:" msgstr "Также заметим следующее:" #. type: IP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "\\[bu]" msgstr "\\[bu]" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "The B() returns -1 with I set to B. " "(This enables the caller to know that the previous timer was affected by a " "discontinuous change to the clock.)" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "The timer I with the settings provided in the " "second B() call. (This was probably an implementation " "accident, but won't be fixed now, in case there are applications that depend " "on this behaviour.)" msgstr "" #. type: SH #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "BUGS" msgstr "ОШИБКИ" #. 2.6.29 #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "Currently, B() supports fewer types of clock IDs than " "B(2)." msgstr "" "В настоящее время B() поддерживает только несколько типов " "идентификаторов часов, поддерживаемых B(2)." #. type: SH #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "EXAMPLES" msgstr "ПРИМЕРЫ" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "The following program creates a timer and then monitors its progress. The " "program accepts up to three command-line arguments. The first argument " "specifies the number of seconds for the initial expiration of the timer. " "The second argument specifies the interval for the timer, in seconds. The " "third argument specifies the number of times the program should allow the " "timer to expire before terminating. The second and third command-line " "arguments are optional." msgstr "" "Следующая программа создаёт таймер и затем следит за его работой. Программа " "получает до трёх аргументов из командной строки. В первом аргументе задаётся " "количество секунд до первого срабатывания таймера. Во втором аргументе " "задаётся интервал таймера в секундах. В третьем аргументе задаётся сколько " "программа должна позволить сработать таймеру до завершения. Второй и третий " "аргументы необязательны." #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "The following shell session demonstrates the use of the program:" msgstr "Следующий сеанс работы в оболочке показывает работу с программой:" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, fuzzy, no-wrap #| msgid "" #| "$B< a.out 3 1 100>\n" #| "0.000: timer started\n" #| "3.000: read: 1; total=1\n" #| "4.000: read: 1; total=2\n" #| "B<\\(haZ > # type control-Z to suspend the program\n" #| "[1]+ Stopped ./timerfd3_demo 3 1 100\n" #| "$ B # Resume execution after a few seconds\n" #| "a.out 3 1 100\n" #| "9.660: read: 5; total=7\n" #| "10.000: read: 1; total=8\n" #| "11.000: read: 1; total=9\n" #| "B<\\(haC > # type control-C to suspend the program\n" msgid "" "$B< a.out 3 1 100>\n" "0.000: timer started\n" "3.000: read: 1; total=1\n" "4.000: read: 1; total=2\n" "B<\\[ha]Z > # type control-Z to suspend the program\n" "[1]+ Stopped ./timerfd3_demo 3 1 100\n" "$ B # Resume execution after a few seconds\n" "a.out 3 1 100\n" "9.660: read: 5; total=7\n" "10.000: read: 1; total=8\n" "11.000: read: 1; total=9\n" "B<\\[ha]C > # type control-C to suspend the program\n" msgstr "" "$B< a.out 3 1 100>\n" "0.000: таймер запущен\n" "3.000: read: 1; всего=1\n" "4.000: read: 1; всего=2\n" "B<\\(haZ > # нажато control-Z для приостанова программы\n" "[1]+ Stopped ./timerfd3_demo 3 1 100\n" "$ B # возобновление выполнения после нескольких\n" " #секунд\n" "a.out 3 1 100\n" "9.660: read: 5; всего=7\n" "10.000: read: 1; всего=8\n" "11.000: read: 1; всего=9\n" "B<\\(haC > # нажато control-C для приостанова программы\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 "Исходный код программы" # # # # # # # #. The commented out code here is what we currently need until #. the required stuff is in glibc #. /* Link with \-lrt */ #. #define _GNU_SOURCE #. #include #. #include #. #include #. #if defined(__i386__) #. #define __NR_timerfd_create 322 #. #define __NR_timerfd_settime 325 #. #define __NR_timerfd_gettime 326 #. #endif #. static int #. timerfd_create(int clockid, int flags) #. { #. return syscall(__NR_timerfd_create, clockid, flags); #. } #. static int #. timerfd_settime(int fd, int flags, struct itimerspec *new_value, #. struct itimerspec *curr_value) #. { #. return syscall(__NR_timerfd_settime, fd, flags, new_value, #. curr_value); #. } #. static int #. timerfd_gettime(int fd, struct itimerspec *curr_value) #. { #. return syscall(__NR_timerfd_gettime, fd, curr_value); #. } #. #define TFD_TIMER_ABSTIME (1 << 0) #. //////////////////////////////////////////////////////////// #. type: Plain text #: archlinux debian-unstable opensuse-tumbleweed #, no-wrap msgid "" "#include Eerr.hE\n" "#include Einttypes.hE\n" "#include Estdio.hE\n" "#include Estdlib.hE\n" "#include Esys/timerfd.hE\n" "#include Esys/types.hE\n" "#include Etime.hE\n" "#include Eunistd.hE\n" "\\&\n" "static void\n" "print_elapsed_time(void)\n" "{\n" " int secs, nsecs;\n" " static int first_call = 1;\n" " struct timespec curr;\n" " static struct timespec start;\n" "\\&\n" " if (first_call) {\n" " first_call = 0;\n" " if (clock_gettime(CLOCK_MONOTONIC, &start) == -1)\n" " err(EXIT_FAILURE, \"clock_gettime\");\n" " }\n" "\\&\n" " if (clock_gettime(CLOCK_MONOTONIC, &curr) == -1)\n" " err(EXIT_FAILURE, \"clock_gettime\");\n" "\\&\n" " secs = curr.tv_sec - start.tv_sec;\n" " nsecs = curr.tv_nsec - start.tv_nsec;\n" " if (nsecs E 0) {\n" " secs--;\n" " nsecs += 1000000000;\n" " }\n" " printf(\"%d.%03d: \", secs, (nsecs + 500000) / 1000000);\n" "}\n" "\\&\n" "int\n" "main(int argc, char *argv[])\n" "{\n" " int fd;\n" " ssize_t s;\n" " uint64_t exp, tot_exp, max_exp;\n" " struct timespec now;\n" " struct itimerspec new_value;\n" "\\&\n" " if (argc != 2 && argc != 4) {\n" " fprintf(stderr, \"%s init-secs [interval-secs max-exp]\\en\",\n" " argv[0]);\n" " exit(EXIT_FAILURE);\n" " }\n" "\\&\n" " if (clock_gettime(CLOCK_REALTIME, &now) == -1)\n" " err(EXIT_FAILURE, \"clock_gettime\");\n" "\\&\n" " /* Create a CLOCK_REALTIME absolute timer with initial\n" " expiration and interval as specified in command line. */\n" "\\&\n" " new_value.it_value.tv_sec = now.tv_sec + atoi(argv[1]);\n" " new_value.it_value.tv_nsec = now.tv_nsec;\n" " if (argc == 2) {\n" " new_value.it_interval.tv_sec = 0;\n" " max_exp = 1;\n" " } else {\n" " new_value.it_interval.tv_sec = atoi(argv[2]);\n" " max_exp = atoi(argv[3]);\n" " }\n" " new_value.it_interval.tv_nsec = 0;\n" "\\&\n" " fd = timerfd_create(CLOCK_REALTIME, 0);\n" " if (fd == -1)\n" " err(EXIT_FAILURE, \"timerfd_create\");\n" "\\&\n" " if (timerfd_settime(fd, TFD_TIMER_ABSTIME, &new_value, NULL) == -1)\n" " err(EXIT_FAILURE, \"timerfd_settime\");\n" "\\&\n" " print_elapsed_time();\n" " printf(\"timer started\\en\");\n" "\\&\n" " for (tot_exp = 0; tot_exp E max_exp;) {\n" " s = read(fd, &exp, sizeof(uint64_t));\n" " if (s != sizeof(uint64_t))\n" " err(EXIT_FAILURE, \"read\");\n" "\\&\n" " tot_exp += exp;\n" " print_elapsed_time();\n" " printf(\"read: %\" PRIu64 \"; total=%\" PRIu64 \"\\en\", exp, tot_exp);\n" " }\n" "\\&\n" " exit(EXIT_SUCCESS);\n" "}\n" msgstr "" #. SRC END #. type: SH #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "SEE ALSO" msgstr "СМОТРИТЕ ТАКЖЕ" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "B(2), B(2), B(2), B(2), B(2), " "B(2), B(2), B(2), " "B(2), B(3), B(7), B