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/eventfd.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/eventfd.2.po')
-rw-r--r-- | po/ru/man2/eventfd.2.po | 1222 |
1 files changed, 1222 insertions, 0 deletions
diff --git a/po/ru/man2/eventfd.2.po b/po/ru/man2/eventfd.2.po new file mode 100644 index 00000000..a64e64f2 --- /dev/null +++ b/po/ru/man2/eventfd.2.po @@ -0,0 +1,1222 @@ +# 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>, 2012. +# Yuri Kozlov <yuray@komyakino.ru>, 2011-2019. +# Иван Павлов <pavia00@gmail.com>, 2017. +msgid "" +msgstr "" +"Project-Id-Version: manpages-l10n\n" +"POT-Creation-Date: 2024-03-01 16:55+0100\n" +"PO-Revision-Date: 2019-10-05 07:57+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 "eventfd" +msgstr "eventfd" + +#. type: TH +#: archlinux fedora-40 fedora-rawhide mageia-cauldron +#, no-wrap +msgid "2023-10-31" +msgstr "31 октября 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 "eventfd - create a file descriptor for event notification" +msgstr "eventfd - создаёт файловый дескриптор для уведомления о событиях" + +#. type: SH +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "LIBRARY" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "Standard C library (I<libc>, I<-lc>)" +msgstr "" + +#. type: SH +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "SYNOPSIS" +msgstr "СИНТАКСИС" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B<#include E<lt>sys/eventfd.hE<gt>>\n" +msgstr "B<#include E<lt>sys/eventfd.hE<gt>>\n" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B<int eventfd(unsigned int >I<initval>B<, int >I<flags>B<);>\n" +msgstr "B<int eventfd(unsigned int >I<initval>B<, int >I<flags>B<);>\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<eventfd>() creates an \"eventfd object\" that can be used as an event " +"wait/notify mechanism by user-space applications, and by the kernel to " +"notify user-space applications of events. The object contains an unsigned " +"64-bit integer (I<uint64_t>) counter that is maintained by the kernel. " +"This counter is initialized with the value specified in the argument " +"I<initval>." +msgstr "" +"Вызов B<eventfd>() создаёт «объект eventfd», который можно использовать в " +"качестве механизма ожидания/уведомления о событиях в приложениях " +"пространства пользователя и ядра. Объект содержит беззнаковое 64-битный " +"(I<uint64_t>) счётчик, обслуживаемый ядром. Этот счётчик инициализируется " +"значением, указанным в аргументе I<initval>." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"As its return value, B<eventfd>() returns a new file descriptor that can be " +"used to refer to the eventfd object." +msgstr "" +"При завершении работы B<eventfd>() возвращает новый файловый дескриптор, " +"который можно использовать для ссылки на объект eventfd." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"The following values may be bitwise ORed in I<flags> to change the behavior " +"of B<eventfd>():" +msgstr "" +"Для изменения поведения B<eventfd>() можно использовать следующие значения " +"I<flags> (через OR):" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B<EFD_CLOEXEC> (since Linux 2.6.27)" +msgstr "B<EFD_CLOEXEC> (начиная с Linux 2.6.27)" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Set the close-on-exec (B<FD_CLOEXEC>) flag on the new file descriptor. See " +"the description of the B<O_CLOEXEC> flag in B<open>(2) for reasons why this " +"may be useful." +msgstr "" +"Устанавливает флаг close-on-exec (B<FD_CLOEXEC>) для нового открытого " +"файлового дескриптора. Смотрите описание флага B<O_CLOEXEC> в B<open>(2) для " +"того, чтобы узнать как это может пригодиться." + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B<EFD_NONBLOCK> (since Linux 2.6.27)" +msgstr "B<EFD_NONBLOCK> (начиная с Linux 2.6.27)" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Set the B<O_NONBLOCK> file status flag on the open file description (see " +"B<open>(2)) referred to by the new file descriptor. Using this flag saves " +"extra calls to B<fcntl>(2) to achieve the same result." +msgstr "" +"Устанавливает флаг состояния файла B<O_NONBLOCK> для нового открытого " +"файлового описания (смотрите B<open>(2)), на которое ссылается новый " +"файловый дескриптор. Использование данного флага делает ненужными " +"дополнительные вызовы B<fcntl>(2) для достижения того же результата." + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B<EFD_SEMAPHORE> (since Linux 2.6.30)" +msgstr "B<EFD_SEMAPHORE> (начиная с Linux 2.6.30)" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Provide semaphore-like semantics for reads from the new file descriptor. " +"See below." +msgstr "" +"Предоставляет семафоро-подобную семантику для чтения из нового файлового " +"дескриптора. Смотрите ниже." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, fuzzy +#| msgid "" +#| "In Linux up to version 2.6.26, the I<flags> argument is unused, and must " +#| "be specified as zero." +msgid "" +"Up to Linux 2.6.26, the I<flags> argument is unused, and must be specified " +"as zero." +msgstr "" +"До версии Linux 2.6.26 аргумент I<flags> не использовался, и должен быть " +"равен нулю." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"The following operations can be performed on the file descriptor returned by " +"B<eventfd>():" +msgstr "" +"Следующие операции могут выполняться над полученным файловым дескриптором " +"B<eventfd>():" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B<read>(2)" +msgstr "B<read>(2)" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Each successful B<read>(2) returns an 8-byte integer. A B<read>(2) fails " +"with the error B<EINVAL> if the size of the supplied buffer is less than 8 " +"bytes." +msgstr "" +"Каждый завершившийся без ошибок вызов B<read>(2) возвращает 8-байтное целое. " +"Вызов B<read>(2) завершается с ошибкой B<EINVAL>, если размер указанного " +"буфера меньше 8 байт." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, fuzzy +#| msgid "" +#| "The value returned by B<read>(2) is in host byte order\\(emthat is, the " +#| "native byte order for integers on the host machine." +msgid "" +"The value returned by B<read>(2) is in host byte order\\[em]that is, the " +"native byte order for integers on the host machine." +msgstr "" +"Возвращаемое B<read>(2) значение имеет порядок байт узла, т. е., " +"используемый порядок байт для целых на машине узла." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"The semantics of B<read>(2) depend on whether the eventfd counter currently " +"has a nonzero value and whether the B<EFD_SEMAPHORE> flag was specified when " +"creating the eventfd file descriptor:" +msgstr "" +"Семантика B<read>(2) зависит от значения счётчика eventfd — равно оно нулю " +"или нет, и был ли указан флаг B<EFD_SEMAPHORE> при создании файлового " +"дескриптора eventfd:" + +#. 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 "" +"If B<EFD_SEMAPHORE> was not specified and the eventfd counter has a nonzero " +"value, then a B<read>(2) returns 8 bytes containing that value, and the " +"counter's value is reset to zero." +msgstr "" +"Если флаг B<EFD_SEMAPHORE> не указан и счётчик eventfd не равен нулю, то " +"B<read>(2) возвращает 8 байт с его значением и значение счётчика " +"сбрасывается в ноль." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"If B<EFD_SEMAPHORE> was specified and the eventfd counter has a nonzero " +"value, then a B<read>(2) returns 8 bytes containing the value 1, and the " +"counter's value is decremented by 1." +msgstr "" +"Если флаг B<EFD_SEMAPHORE> задан указан и счётчик eventfd не равен нулю, то " +"B<read>(2) возвращает 8 байт, содержащие значение 1, и значение счётчика " +"уменьшается на 1." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"If the eventfd counter is zero at the time of the call to B<read>(2), then " +"the call either blocks until the counter becomes nonzero (at which time, the " +"B<read>(2) proceeds as described above) or fails with the error B<EAGAIN> " +"if the file descriptor has been made nonblocking." +msgstr "" +"Если счётчик eventfd равен нулю во время вызова B<read>(2), то вызов " +"блокируется до тех пор, пока счётчик станет не равным нулю (время работы " +"B<read>(2) описано выше) или завершается с ошибкой B<EAGAIN>, если файловый " +"дескриптор создан неблокируемым." + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B<write>(2)" +msgstr "B<write>(2)" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"A B<write>(2) call adds the 8-byte integer value supplied in its buffer to " +"the counter. The maximum value that may be stored in the counter is the " +"largest unsigned 64-bit value minus 1 (i.e., 0xfffffffffffffffe). If the " +"addition would cause the counter's value to exceed the maximum, then the " +"B<write>(2) either blocks until a B<read>(2) is performed on the file " +"descriptor, or fails with the error B<EAGAIN> if the file descriptor has " +"been made nonblocking." +msgstr "" +"При вызове B<write>(2) из его буфера к счётчику добавляется 8-байтовое целое " +"значение. Максимальное значение, которое может храниться в счётчике, равно " +"наибольшему 64-битному беззнаковому значению минус 1 (т.е., " +"0xfffffffffffffffe). Если при добавлении значение счётчика превысит " +"максимум, то B<write>(2) заблокируется до тех пор, пока для файлового " +"дескриптора не будет выполнен вызов B<read>(2), или завершится с ошибкой " +"B<EAGAIN>, если файловый дескриптор создан неблокируемым." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"A B<write>(2) fails with the error B<EINVAL> if the size of the supplied " +"buffer is less than 8 bytes, or if an attempt is made to write the value " +"0xffffffffffffffff." +msgstr "" +"Вызов B<write>(2) завершается с ошибкой B<EINVAL>, если размер указанного " +"буфера меньше 8 байт, или если попытаться записать значение " +"0xffffffffffffffff." + +#. type: TP +#: archlinux fedora-40 fedora-rawhide mageia-cauldron +#, no-wrap +msgid "B<poll>(2)" +msgstr "B<poll>(2)" + +#. type: TQ +#: archlinux fedora-40 fedora-rawhide mageia-cauldron +#, no-wrap +msgid "B<select>(2)" +msgstr "B<select>(2)" + +#. type: TQ +#: archlinux fedora-40 fedora-rawhide mageia-cauldron +#, no-wrap +msgid "(and similar)" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"The returned file descriptor supports B<poll>(2) (and analogously " +"B<epoll>(7)) and B<select>(2), as follows:" +msgstr "" +"Возвращённый файловый дескриптор поддерживает B<poll>(2) (и, аналогично, " +"B<epoll>(7)) и B<select>(2) следующим образом:" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"The file descriptor is readable (the B<select>(2) I<readfds> argument; the " +"B<poll>(2) B<POLLIN> flag) if the counter has a value greater than 0." +msgstr "" +"Файловый дескриптор доступен для чтения (в B<select>(2) аргумент I<readfds>; " +"в B<poll>(2) флаг B<POLLIN>), если счётчик больше 0." + +#. 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 writable (the B<select>(2) I<writefds> argument; the " +"B<poll>(2) B<POLLOUT> flag) if it is possible to write a value of at least " +"\"1\" without blocking." +msgstr "" +"Файловый дескриптор доступен для записи (в B<select>(2) аргумент " +"I<writefds>; в B<poll>(2) флаг B<POLLOUT>), если можно записать значение " +"равное, как минимум, \"1\" без блокировки." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, fuzzy +#| msgid "" +#| "If an overflow of the counter value was detected, then B<select>(2) " +#| "indicates the file descriptor as being both readable and writable, and " +#| "B<poll>(2) returns a B<POLLERR> event. As noted above, B<write>(2) can " +#| "never overflow the counter. However an overflow can occur if 2^64 " +#| "eventfd \"signal posts\" were performed by the KAIO subsystem " +#| "(theoretically possible, but practically unlikely). If an overflow has " +#| "occurred, then B<read>(2) will return that maximum I<uint64_t> value (i." +#| "e., 0xffffffffffffffff)." +msgid "" +"If an overflow of the counter value was detected, then B<select>(2) " +"indicates the file descriptor as being both readable and writable, and " +"B<poll>(2) returns a B<POLLERR> event. As noted above, B<write>(2) can " +"never overflow the counter. However an overflow can occur if 2\\[ha]64 " +"eventfd \"signal posts\" were performed by the KAIO subsystem (theoretically " +"possible, but practically unlikely). If an overflow has occurred, then " +"B<read>(2) will return that maximum I<uint64_t> value (i.e., " +"0xffffffffffffffff)." +msgstr "" +"Если обнаружено переполнение счётчика, то B<select>(2) указывает на файловый " +"дескриптор, доступный на чтение и запись, и B<poll>(2) возвращает событие " +"B<POLLERR>. Как упоминалось ранее, B<write>(2) никогда не может вызвать " +"переполнение счётчика. Однако переполнение может произойти, если подсистемой " +"KAIO выполнится (возможно теоретически) 2^64 \"передач сигналов\" eventfd. " +"Если переполнение произошло, то B<read>(2) вернёт максимальное значение типа " +"I<uint64_t> (т.е., 0xffffffffffffffff)." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"The eventfd file descriptor also supports the other file-descriptor " +"multiplexing APIs: B<pselect>(2) and B<ppoll>(2)." +msgstr "" +"Файловый дескриптор eventfd также поддерживает другие мультиплексные " +"программные интерфейсы: B<pselect>(2) и B<ppoll>(2)." + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B<close>(2)" +msgstr "B<close>(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 eventfd object have been " +"closed, the resources for object are freed by the kernel." +msgstr "" +"Если файловый дескриптор больше не требуется, его нужно закрыть. Когда все " +"файловые дескрипторы, связанные с одним объектом eventfd, будут закрыты, " +"ядро освобождает ресурсы объекта." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"A copy of the file descriptor created by B<eventfd>() is inherited by the " +"child produced by B<fork>(2). The duplicate file descriptor is associated " +"with the same eventfd object. File descriptors created by B<eventfd>() are " +"preserved across B<execve>(2), unless the close-on-exec flag has been set." +msgstr "" +"Копия файлового дескриптора, созданного B<eventfd>(), наследуется потомком, " +"созданным с помощью B<fork>(2). Копия файлового дескриптора связывается с " +"тем же объектом eventfd. Файловые дескрипторы, созданные B<eventfd>(), " +"сохраняются при вызове B<execve>(2), если не указан флаг close-on-exec." + +#. 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<eventfd>() returns a new eventfd file descriptor. On error, " +"-1 is returned and I<errno> is set to indicate the error." +msgstr "" +"При успешном выполнении B<eventfd>() возвращает новый файловый дескриптор " +"eventfd. При ошибке возвращается -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<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 "An unsupported value was specified in I<flags>." +msgstr "В I<flags> указано неподдерживаемое значение." + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B<EMFILE>" +msgstr "B<EMFILE>" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"The per-process limit on the number of open file descriptors has been " +"reached." +msgstr "" +"Было достигнуто ограничение по количеству открытых файловых дескрипторов на " +"процесс." + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B<ENFILE>" +msgstr "B<ENFILE>" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"The system-wide limit on the total number of open files has been reached." +msgstr "Достигнуто максимальное количество открытых файлов в системе." + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B<ENODEV>" +msgstr "B<ENODEV>" + +#. Note from Davide: +#. The ENODEV error is basically never going to happen if +#. the kernel boots correctly. That error happen only if during +#. the kernel initialization, some error occur in the anonymous +#. inode source initialization. +#. 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<ENOMEM>" +msgstr "B<ENOMEM>" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "There was insufficient memory to create a new eventfd file descriptor." +msgstr "Недостаточно памяти для создания нового файлового дескриптора eventfd." + +#. type: SH +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "ATTRIBUTES" +msgstr "АТРИБУТЫ" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"For an explanation of the terms used in this section, see B<attributes>(7)." +msgstr "Описание терминов данного раздела смотрите в B<attributes>(7)." + +#. type: tbl table +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "Interface" +msgstr "Интерфейс" + +#. type: tbl table +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "Attribute" +msgstr "Атрибут" + +#. type: tbl table +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "Value" +msgstr "Значение" + +#. type: tbl table +#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron +#: opensuse-tumbleweed +#, no-wrap +msgid ".na\n" +msgstr ".na\n" + +#. type: tbl table +#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron +#: opensuse-tumbleweed +#, no-wrap +msgid ".nh\n" +msgstr ".nh\n" + +#. #-#-#-#-# archlinux: eventfd.2.pot (PACKAGE VERSION) #-#-#-#-# +#. type: TP +#. #-#-#-#-# debian-bookworm: eventfd.2.pot (PACKAGE VERSION) #-#-#-#-# +#. type: tbl table +#. #-#-#-#-# debian-unstable: eventfd.2.pot (PACKAGE VERSION) #-#-#-#-# +#. type: TP +#. #-#-#-#-# fedora-40: eventfd.2.pot (PACKAGE VERSION) #-#-#-#-# +#. type: TP +#. #-#-#-#-# fedora-rawhide: eventfd.2.pot (PACKAGE VERSION) #-#-#-#-# +#. type: TP +#. #-#-#-#-# mageia-cauldron: eventfd.2.pot (PACKAGE VERSION) #-#-#-#-# +#. type: TP +#. #-#-#-#-# opensuse-leap-15-6: eventfd.2.pot (PACKAGE VERSION) #-#-#-#-# +#. type: TP +#. #-#-#-#-# opensuse-tumbleweed: eventfd.2.pot (PACKAGE VERSION) #-#-#-#-# +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B<eventfd>()" +msgstr "B<eventfd>()" + +#. type: tbl table +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "Thread safety" +msgstr "Безвредность в нитях" + +#. type: tbl table +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "MT-Safe" +msgstr "MT-Safe" + +#. 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 и ядром" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"There are two underlying Linux system calls: B<eventfd>() and the more " +"recent B<eventfd2>(). The former system call does not implement a I<flags> " +"argument. The latter system call implements the I<flags> values described " +"above. The glibc wrapper function will use B<eventfd2>() where it is " +"available." +msgstr "" +"Основу составляют два системных вызова Linux: B<eventfd>() и более новый " +"B<eventfd2>(). В первом системном вызове не реализован аргумент I<flags>. " +"Последний системный вызов использует значения I<flags>, которые были описаны " +"ранее. Обёрточная функция glibc использует B<eventfd2>(), если он доступен." + +#. type: SS +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "Additional glibc features" +msgstr "Дополнительные возможности glibc" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"The GNU C library defines an additional type, and two functions that attempt " +"to abstract some of the details of reading and writing on an eventfd file " +"descriptor:" +msgstr "" +"В библиотеке GNU C определён дополнительный тип и две функции, которые " +"пытаются устранить сложности чтения и записи из файлового дескриптора " +"eventfd:" + +#. type: Plain text +#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron +#: opensuse-tumbleweed +#, fuzzy, no-wrap +#| msgid "" +#| "int eventfd_read(int fd, eventfd_t *value);\n" +#| "int eventfd_write(int fd, eventfd_t value);\n" +msgid "" +"typedef uint64_t eventfd_t;\n" +"\\&\n" +"int eventfd_read(int fd, eventfd_t *value);\n" +"int eventfd_write(int fd, eventfd_t value);\n" +msgstr "" +"int eventfd_read(int fd, eventfd_t *value);\n" +"int eventfd_write(int fd, eventfd_t value);\n" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"The functions perform the read and write operations on an eventfd file " +"descriptor, returning 0 if the correct number of bytes was transferred, or " +"-1 otherwise." +msgstr "" +"Функции выполняют операции чтения и записи из файлового дескриптора eventfd, " +"и возвращают 0, если передано правильное количество байт и -1 в противном " +"случае." + +#. 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 +#, fuzzy +#| msgid "Linux" +msgid "Linux, GNU." +msgstr "Linux" + +#. type: SH +#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron +#: opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "HISTORY" +msgstr "ИСТОРИЯ" + +#. eventfd() is in glibc 2.7, but reportedly does not build +#. type: Plain text +#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron +#: opensuse-leap-15-6 opensuse-tumbleweed +msgid "Linux 2.6.22, glibc 2.8." +msgstr "" + +#. type: TP +#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron +#: opensuse-leap-15-6 opensuse-tumbleweed +#, fuzzy, no-wrap +#| msgid "B<eventfd>()" +msgid "B<eventfd2>()" +msgstr "B<eventfd>()" + +#. type: Plain text +#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron +#: opensuse-leap-15-6 opensuse-tumbleweed +#, fuzzy +#| msgid "" +#| "B<eventfd>() is available on Linux since kernel 2.6.22. Working support " +#| "is provided in glibc since version 2.8. The B<eventfd2>() system call " +#| "(see NOTES) is available on Linux since kernel 2.6.27. Since version " +#| "2.9, the glibc B<eventfd>() wrapper will employ the B<eventfd2>() " +#| "system call, if it is supported by the kernel." +msgid "" +"Linux 2.6.27 (see VERSIONS). Since glibc 2.9, the B<eventfd>() wrapper " +"will employ the B<eventfd2>() system call, if it is supported by the kernel." +msgstr "" +"Вызов B<eventfd>() доступен в Linux начиная с ядра 2.6.22. Поддержка в glibc " +"появилась в версии 2.8. Системный вызов B<eventfd2>() (см. ЗАМЕЧАНИЯ) " +"доступен в Linux начиная с ядра 2.6.27. В glibc версии 2.9 в обёртке " +"B<eventfd>() используется системный вызов B<eventfd2>(), если он " +"поддерживается ядром." + +#. 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 "" +"Applications can use an eventfd file descriptor instead of a pipe (see " +"B<pipe>(2)) in all cases where a pipe is used simply to signal events. The " +"kernel overhead of an eventfd file descriptor is much lower than that of a " +"pipe, and only one file descriptor is required (versus the two required for " +"a pipe)." +msgstr "" +"Приложения могут использовать файловый дескриптор eventfd вместо канала (см. " +"B<pipe>(2)) во всех случаях, когда канал используется только для " +"сигнализации о событиях. Издержки ядра по файловому дескриптору eventfd " +"намного меньше, чем по каналу и требуется только один файловый дескриптор " +"(против двух, при использовании канала)." + +#. or eventually syslets/threadlets +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"When used in the kernel, an eventfd file descriptor can provide a bridge " +"from kernel to user space, allowing, for example, functionalities like KAIO " +"(kernel AIO) to signal to a file descriptor that some operation is complete." +msgstr "" +"При использовании в ядре файловый дескриптор eventfd может предоставлять " +"мост из ядерного в пользовательское пространство, позволяя например " +"работать, подобно KAIO ( ядерный AIO), сигнализируя, что завершена какая-то " +"операция над файловым дескриптором." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"A key point about an eventfd file descriptor is that it can be monitored " +"just like any other file descriptor using B<select>(2), B<poll>(2), or " +"B<epoll>(7). This means that an application can simultaneously monitor the " +"readiness of \"traditional\" files and the readiness of other kernel " +"mechanisms that support the eventfd interface. (Without the B<eventfd>() " +"interface, these mechanisms could not be multiplexed via B<select>(2), " +"B<poll>(2), or B<epoll>(7).)" +msgstr "" +"Важным моментом файлового дескриптора eventfd является то, что за ним можно " +"следить как за обычным файловым дескриптором с помощью B<select>(2), " +"B<poll>(2) или B<epoll>(7). Это означает, что приложение может одновременно " +"отслеживать готовность \"обычных\" файлов и готовность других механизмов " +"ядра, которые поддерживают интерфейс eventfd. (Без интерфейса B<eventfd>() " +"эти механизмы невозможно мультиплексировать через B<select>(2), B<poll>(2) " +"или B<epoll>(7).)" + +#. 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 an eventfd counter can be viewed via the entry for the " +"corresponding file descriptor in the process's I</proc/>pidI</fdinfo> " +"directory. See B<proc>(5) for further details." +msgstr "" +"Текущее значение счётчика eventfd можно найти в записи для соответствующего " +"файлового дескриптора в каталоге процесса I</proc/>pidI</fdinfo>. " +"Подробности смотрите в B<proc>(5)." + +#. 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 an eventfd file descriptor and then forks to " +"create a child process. While the parent briefly sleeps, the child writes " +"each of the integers supplied in the program's command-line arguments to the " +"eventfd file descriptor. When the parent has finished sleeping, it reads " +"from the eventfd file descriptor." +msgstr "" +"Следующая программа создаёт файловый дескриптор eventfd и затем создаёт " +"дочерний процесс. Пока родительский процесс на короткое время засыпает, " +"потомок пишет все числа, переданные в командной строке программы, в файловый " +"дескриптор eventfd. Когда родитель просыпается, он читает их из файлового " +"дескриптора eventfd." + +#. 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 shows a sample run of the program:" +msgstr "Пример сеанса работы с программой:" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "" +"$B< ./a.out 1 2 4 7 14>\n" +"Child writing 1 to efd\n" +"Child writing 2 to efd\n" +"Child writing 4 to efd\n" +"Child writing 7 to efd\n" +"Child writing 14 to efd\n" +"Child completed write loop\n" +"Parent about to read\n" +"Parent read 28 (0x1c) from efd\n" +msgstr "" +"$B< ./a.out 1 2 4 7 14>\n" +"Child writing 1 to efd\n" +"Child writing 2 to efd\n" +"Child writing 4 to efd\n" +"Child writing 7 to efd\n" +"Child writing 14 to efd\n" +"Child completed write loop\n" +"Parent about to read\n" +"Parent read 28 (0x1c) from efd\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>err.hE<gt>\n" +"#include E<lt>inttypes.hE<gt>\n" +"#include E<lt>stdio.hE<gt>\n" +"#include E<lt>stdlib.hE<gt>\n" +"#include E<lt>sys/eventfd.hE<gt>\n" +"#include E<lt>unistd.hE<gt>\n" +"\\&\n" +"int\n" +"main(int argc, char *argv[])\n" +"{\n" +" int efd;\n" +" uint64_t u;\n" +" ssize_t s;\n" +"\\&\n" +" if (argc E<lt> 2) {\n" +" fprintf(stderr, \"Usage: %s E<lt>numE<gt>...\\en\", argv[0]);\n" +" exit(EXIT_FAILURE);\n" +" }\n" +"\\&\n" +" efd = eventfd(0, 0);\n" +" if (efd == -1)\n" +" err(EXIT_FAILURE, \"eventfd\");\n" +"\\&\n" +" switch (fork()) {\n" +" case 0:\n" +" for (size_t j = 1; j E<lt> argc; j++) {\n" +" printf(\"Child writing %s to efd\\en\", argv[j]);\n" +" u = strtoull(argv[j], NULL, 0);\n" +" /* strtoull() allows various bases */\n" +" s = write(efd, &u, sizeof(uint64_t));\n" +" if (s != sizeof(uint64_t))\n" +" err(EXIT_FAILURE, \"write\");\n" +" }\n" +" printf(\"Child completed write loop\\en\");\n" +"\\&\n" +" exit(EXIT_SUCCESS);\n" +"\\&\n" +" default:\n" +" sleep(2);\n" +"\\&\n" +" printf(\"Parent about to read\\en\");\n" +" s = read(efd, &u, sizeof(uint64_t));\n" +" if (s != sizeof(uint64_t))\n" +" err(EXIT_FAILURE, \"read\");\n" +" printf(\"Parent read %\"PRIu64\" (%#\"PRIx64\") from efd\\en\", u, u);\n" +" exit(EXIT_SUCCESS);\n" +"\\&\n" +" case -1:\n" +" err(EXIT_FAILURE, \"fork\");\n" +" }\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<futex>(2), B<pipe>(2), B<poll>(2), B<read>(2), B<select>(2), " +"B<signalfd>(2), B<timerfd_create>(2), B<write>(2), B<epoll>(7), " +"B<sem_overview>(7)" +msgstr "" +"B<futex>(2), B<pipe>(2), B<poll>(2), B<read>(2), B<select>(2), " +"B<signalfd>(2), B<timerfd_create>(2), B<write>(2), B<epoll>(7), " +"B<sem_overview>(7)" + +#. type: TH +#: debian-bookworm +#, no-wrap +msgid "2023-02-10" +msgstr "10 февраля 2023 г." + +#. type: TH +#: debian-bookworm +#, no-wrap +msgid "Linux man-pages 6.03" +msgstr "Linux man-pages 6.03" + +#. type: TP +#: debian-bookworm debian-unstable opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B<poll>(2), B<select>(2) (and similar)" +msgstr "B<poll>(2), B<select>(2) (и подобные)" + +#. eventfd() is in glibc 2.7, but reportedly does not build +#. type: Plain text +#: debian-bookworm +#, fuzzy +#| msgid "" +#| "B<eventfd>() is available on Linux since kernel 2.6.22. Working support " +#| "is provided in glibc since version 2.8. The B<eventfd2>() system call " +#| "(see NOTES) is available on Linux since kernel 2.6.27. Since version " +#| "2.9, the glibc B<eventfd>() wrapper will employ the B<eventfd2>() " +#| "system call, if it is supported by the kernel." +msgid "" +"B<eventfd>() is available since Linux 2.6.22. Working support is provided " +"since glibc 2.8. The B<eventfd2>() system call (see NOTES) is available " +"since Linux 2.6.27. Since glibc 2.9, the B<eventfd>() wrapper will employ " +"the B<eventfd2>() system call, if it is supported by the kernel." +msgstr "" +"Вызов B<eventfd>() доступен в Linux начиная с ядра 2.6.22. Поддержка в glibc " +"появилась в версии 2.8. Системный вызов B<eventfd2>() (см. ЗАМЕЧАНИЯ) " +"доступен в Linux начиная с ядра 2.6.27. В glibc версии 2.9 в обёртке " +"B<eventfd>() используется системный вызов B<eventfd2>(), если он " +"поддерживается ядром." + +#. type: Plain text +#: debian-bookworm +msgid "B<eventfd>() and B<eventfd2>() are Linux-specific." +msgstr "Вызовы B<eventfd>() и B<eventfd2>() есть только в Linux." + +#. type: Plain text +#: debian-bookworm opensuse-leap-15-6 +#, no-wrap +msgid "typedef uint64_t eventfd_t;\n" +msgstr "typedef uint64_t eventfd_t;\n" + +#. type: Plain text +#: debian-bookworm opensuse-leap-15-6 +#, no-wrap +msgid "" +"int eventfd_read(int fd, eventfd_t *value);\n" +"int eventfd_write(int fd, eventfd_t value);\n" +msgstr "" +"int eventfd_read(int fd, eventfd_t *value);\n" +"int eventfd_write(int fd, eventfd_t value);\n" + +#. type: Plain text +#: debian-bookworm opensuse-leap-15-6 +#, no-wrap +msgid "" +"#include E<lt>err.hE<gt>\n" +"#include E<lt>inttypes.hE<gt>\n" +"#include E<lt>stdio.hE<gt>\n" +"#include E<lt>stdlib.hE<gt>\n" +"#include E<lt>sys/eventfd.hE<gt>\n" +"#include E<lt>unistd.hE<gt>\n" +msgstr "" +"#include E<lt>err.hE<gt>\n" +"#include E<lt>inttypes.hE<gt>\n" +"#include E<lt>stdio.hE<gt>\n" +"#include E<lt>stdlib.hE<gt>\n" +"#include E<lt>sys/eventfd.hE<gt>\n" +"#include E<lt>unistd.hE<gt>\n" + +#. type: Plain text +#: debian-bookworm opensuse-leap-15-6 +#, no-wrap +msgid "" +"int\n" +"main(int argc, char *argv[])\n" +"{\n" +" int efd;\n" +" uint64_t u;\n" +" ssize_t s;\n" +msgstr "" +"int\n" +"main(int argc, char *argv[])\n" +"{\n" +" int efd;\n" +" uint64_t u;\n" +" ssize_t s;\n" + +#. type: Plain text +#: debian-bookworm opensuse-leap-15-6 +#, no-wrap +msgid "" +" if (argc E<lt> 2) {\n" +" fprintf(stderr, \"Usage: %s E<lt>numE<gt>...\\en\", argv[0]);\n" +" exit(EXIT_FAILURE);\n" +" }\n" +msgstr "" +" if (argc E<lt> 2) {\n" +" fprintf(stderr, \"Использование: %s E<lt>numE<gt>...\\en\", argv[0]);\n" +" exit(EXIT_FAILURE);\n" +" }\n" + +#. type: Plain text +#: debian-bookworm opensuse-leap-15-6 +#, no-wrap +msgid "" +" efd = eventfd(0, 0);\n" +" if (efd == -1)\n" +" err(EXIT_FAILURE, \"eventfd\");\n" +msgstr "" +" efd = eventfd(0, 0);\n" +" if (efd == -1)\n" +" err(EXIT_FAILURE, \"eventfd\");\n" + +#. type: Plain text +#: debian-bookworm opensuse-leap-15-6 +#, no-wrap +msgid "" +" switch (fork()) {\n" +" case 0:\n" +" for (size_t j = 1; j E<lt> argc; j++) {\n" +" printf(\"Child writing %s to efd\\en\", argv[j]);\n" +" u = strtoull(argv[j], NULL, 0);\n" +" /* strtoull() allows various bases */\n" +" s = write(efd, &u, sizeof(uint64_t));\n" +" if (s != sizeof(uint64_t))\n" +" err(EXIT_FAILURE, \"write\");\n" +" }\n" +" printf(\"Child completed write loop\\en\");\n" +msgstr "" +" switch (fork()) {\n" +" case 0:\n" +" for (size_t j = 1; j E<lt> argc; j++) {\n" +" printf(\"Child writing %s to efd\\en\", argv[j]);\n" +" u = strtoull(argv[j], NULL, 0);\n" +" /* в strtoull() разрешены различные основания */\n" +" s = write(efd, &u, sizeof(uint64_t));\n" +" if (s != sizeof(uint64_t))\n" +" err(EXIT_FAILURE, \"write\");\n" +" }\n" +" printf(\"Child completed write loop\\en\");\n" + +#. type: Plain text +#: debian-bookworm opensuse-leap-15-6 +#, no-wrap +msgid " exit(EXIT_SUCCESS);\n" +msgstr " exit(EXIT_SUCCESS);\n" + +#. type: Plain text +#: debian-bookworm opensuse-leap-15-6 +#, no-wrap +msgid "" +" default:\n" +" sleep(2);\n" +msgstr "" +" default:\n" +" sleep(2);\n" + +#. type: Plain text +#: debian-bookworm opensuse-leap-15-6 +#, fuzzy, no-wrap +#| msgid "" +#| " printf(\"Parent about to read\\en\");\n" +#| " s = read(efd, &u, sizeof(uint64_t));\n" +#| " if (s != sizeof(uint64_t))\n" +#| " handle_error(\"read\");\n" +#| " printf(\"Parent read %llu (0x%llx) from efd\\en\",\n" +#| " (unsigned long long) u, (unsigned long long) u);\n" +#| " exit(EXIT_SUCCESS);\n" +msgid "" +" printf(\"Parent about to read\\en\");\n" +" s = read(efd, &u, sizeof(uint64_t));\n" +" if (s != sizeof(uint64_t))\n" +" err(EXIT_FAILURE, \"read\");\n" +" printf(\"Parent read %\"PRIu64\" (%#\"PRIx64\") from efd\\en\", u, u);\n" +" exit(EXIT_SUCCESS);\n" +msgstr "" +" printf(\"Parent about to read\\en\");\n" +" s = read(efd, &u, sizeof(uint64_t));\n" +" if (s != sizeof(uint64_t))\n" +" handle_error(\"read\");\n" +" printf(\"Parent read %llu (0x%llx) from efd\\en\",\n" +" (unsigned long long) u, (unsigned long long) u);\n" +" exit(EXIT_SUCCESS);\n" + +#. type: Plain text +#: debian-bookworm opensuse-leap-15-6 +#, no-wrap +msgid "" +" case -1:\n" +" err(EXIT_FAILURE, \"fork\");\n" +" }\n" +"}\n" +msgstr "" +" case -1:\n" +" err(EXIT_FAILURE, \"fork\");\n" +" }\n" +"}\n" + +#. type: TH +#: debian-unstable opensuse-tumbleweed +#, no-wrap +msgid "2023-07-20" +msgstr "20 июля 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" |