summaryrefslogtreecommitdiffstats
path: root/po/ru/man7/inotify.7.po
diff options
context:
space:
mode:
Diffstat (limited to 'po/ru/man7/inotify.7.po')
-rw-r--r--po/ru/man7/inotify.7.po2740
1 files changed, 2740 insertions, 0 deletions
diff --git a/po/ru/man7/inotify.7.po b/po/ru/man7/inotify.7.po
new file mode 100644
index 00000000..85ac71af
--- /dev/null
+++ b/po/ru/man7/inotify.7.po
@@ -0,0 +1,2740 @@
+# 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>, 2013-2014, 2017.
+# Dmitriy S. Seregin <dseregin@59.ru>, 2013.
+# Yuri Kozlov <yuray@komyakino.ru>, 2011-2019.
+# Иван Павлов <pavia00@gmail.com>, 2017, 2019.
+msgid ""
+msgstr ""
+"Project-Id-Version: manpages-l10n\n"
+"POT-Creation-Date: 2024-03-01 16:58+0100\n"
+"PO-Revision-Date: 2019-10-05 08:17+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
+#, fuzzy, no-wrap
+#| msgid "inotify events"
+msgid "inotify"
+msgstr "События inotify"
+
+#. 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 "inotify - monitoring filesystem events"
+msgstr "inotify - наблюдает за событиями файловой системы"
+
+#. 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 ""
+"The I<inotify> API provides a mechanism for monitoring filesystem events. "
+"Inotify can be used to monitor individual files, or to monitor directories. "
+"When a directory is monitored, inotify will return events for the directory "
+"itself, and for files inside the directory."
+msgstr ""
+"Программный интерфейс I<inotify> предоставляет механизм для слежения за "
+"событиями в файловой системе. Его можно использовать для слежения за "
+"отдельными файлами или каталогами. При слежении за каталогами inotify "
+"возвращает события как для самого каталога, так и для файлов внутри каталога."
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid "The following system calls are used with this API:"
+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 ""
+"B<inotify_init>(2) creates an inotify instance and returns a file "
+"descriptor referring to the inotify instance. The more recent "
+"B<inotify_init1>(2) is like B<inotify_init>(2), but has a I<flags> argument "
+"that provides access to some extra functionality."
+msgstr ""
+"Вызов B<inotify_init>(2) создаёт экземпляр inotify и возвращает файловый "
+"дескриптор, ссылающийся на экземпляр inotify. Более новый "
+"B<inotify_init1>(2) подобен B<inotify_init>(2), но имеет аргумент I<flags>, "
+"который предоставляет доступ к некоторым дополнительным возможностям."
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"B<inotify_add_watch>(2) manipulates the \"watch list\" associated with an "
+"inotify instance. Each item (\"watch\") in the watch list specifies the "
+"pathname of a file or directory, along with some set of events that the "
+"kernel should monitor for the file referred to by that pathname. "
+"B<inotify_add_watch>(2) either creates a new watch item, or modifies an "
+"existing watch. Each watch has a unique \"watch descriptor\", an integer "
+"returned by B<inotify_add_watch>(2) when the watch is created."
+msgstr ""
+"Вызов B<inotify_add_watch>(2) изменяет «список наблюдения», связанный с "
+"экземпляром inotify. Каждый элемент (сторожок (watch)) в списке задаёт путь "
+"к файлу или каталогу и некоторый набор событий, которые ядро должно "
+"отслеживать для файла, на который указывает этот путь. Вызов "
+"B<inotify_add_watch>(2) или создаёт новый сторожок, или изменяет "
+"существующий. Каждый сторожок имеет уникальный «дескриптор сторожка» — целое "
+"число, возвращаемое B<inotify_add_watch>(2) при создании сторожка."
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"When events occur for monitored files and directories, those events are made "
+"available to the application as structured data that can be read from the "
+"inotify file descriptor using B<read>(2) (see below)."
+msgstr ""
+"При возникновении событий с отслеживаемыми файлами и каталогами, эти события "
+"становятся доступны приложению в виде структурированных данных, которые "
+"можно прочитать из файлового дескриптора inotify с помощью B<read>(2) "
+"(смотрите ниже)."
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid "B<inotify_rm_watch>(2) removes an item from an inotify watch list."
+msgstr ""
+"Вызов B<inotify_rm_watch>(2) удаляет элемент из списка наблюдения inotify."
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"When all file descriptors referring to an inotify instance have been closed "
+"(using B<close>(2)), the underlying object and its resources are freed for "
+"reuse by the kernel; all associated watches are automatically freed."
+msgstr ""
+"При закрытии (с помощью B<close>(2)) файловых дескрипторов, ссылающихся на "
+"экземпляр inotify, этот объект и его ресурсы освобождаются для повторного "
+"использования ядром; все связанные сторожки освобождаются автоматически."
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"With careful programming, an application can use inotify to efficiently "
+"monitor and cache the state of a set of filesystem objects. However, robust "
+"applications should allow for the fact that bugs in the monitoring logic or "
+"races of the kind described below may leave the cache inconsistent with the "
+"filesystem state. It is probably wise to do some consistency checking, and "
+"rebuild the cache when inconsistencies are detected."
+msgstr ""
+"При корректном программировании, приложение может эффективно использовать "
+"inotify для слежения и кэширования состояния набора объектов файловой "
+"системы. Однако, в тщательно проработанных приложениях нужно предполагать "
+"наличие ошибок в логике слежения или состязательности, описанных далее, "
+"которые могут приводить к рассогласованности кэша с состоянием файловой "
+"системы. Вероятно, лучше сделать некоторую проверку и перестроить кэш при "
+"обнаружении рассогласованности."
+
+#. type: SS
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "Reading events from an inotify file descriptor"
+msgstr "Чтение событий из файлового дескриптора inotify"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"To determine what events have occurred, an application B<read>(2)s from the "
+"inotify file descriptor. If no events have so far occurred, then, assuming "
+"a blocking file descriptor, B<read>(2) will block until at least one event "
+"occurs (unless interrupted by a signal, in which case the call fails with "
+"the error B<EINTR>; see B<signal>(7))."
+msgstr ""
+"Чтобы определить, что события произошли, приложение должно прочитать "
+"(B<read>(2)) файловый дескриптор inotify. Если событий не было, то "
+"предполагая, что это блокирующий файловый дескриптор, вызов B<read>(2) "
+"заблокирует работу до возникновения, по крайней мере, одного события (если "
+"не будет прерван сигналом; в этом случае вызов завершается с ошибкой "
+"B<EINTR>, смотрите B<signal>(7))."
+
+#. 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 a buffer containing one or more of the "
+"following structures:"
+msgstr ""
+"При успешном выполнении B<read>(2) возвращает буфер с одной или более "
+"структурами следующего вида:"
+
+#. #-#-#-#-# archlinux: inotify.7.pot (PACKAGE VERSION) #-#-#-#-#
+#. FIXME . The type of the 'wd' field should probably be "int32_t".
+#. I submitted a patch to fix this. See the LKML thread
+#. "[patch] Fix type errors in inotify interfaces", 18 Nov 2008
+#. glibc bug filed: https://www.sourceware.org/bugzilla/show_bug.cgi?id=7040
+#. type: Plain text
+#. #-#-#-#-# debian-bookworm: inotify.7.pot (PACKAGE VERSION) #-#-#-#-#
+#. FIXME . The type of the 'wd' field should probably be "int32_t".
+#. I submitted a patch to fix this. See the LKML thread
+#. "[patch] Fix type errors in inotify interfaces", 18 Nov 2008
+#. glibc bug filed: http://sources.redhat.com/bugzilla/show_bug.cgi?id=7040
+#. type: Plain text
+#. #-#-#-#-# debian-unstable: inotify.7.pot (PACKAGE VERSION) #-#-#-#-#
+#. FIXME . The type of the 'wd' field should probably be "int32_t".
+#. I submitted a patch to fix this. See the LKML thread
+#. "[patch] Fix type errors in inotify interfaces", 18 Nov 2008
+#. glibc bug filed: https://www.sourceware.org/bugzilla/show_bug.cgi?id=7040
+#. type: Plain text
+#. #-#-#-#-# fedora-40: inotify.7.pot (PACKAGE VERSION) #-#-#-#-#
+#. FIXME . The type of the 'wd' field should probably be "int32_t".
+#. I submitted a patch to fix this. See the LKML thread
+#. "[patch] Fix type errors in inotify interfaces", 18 Nov 2008
+#. glibc bug filed: https://www.sourceware.org/bugzilla/show_bug.cgi?id=7040
+#. type: Plain text
+#. #-#-#-#-# fedora-rawhide: inotify.7.pot (PACKAGE VERSION) #-#-#-#-#
+#. FIXME . The type of the 'wd' field should probably be "int32_t".
+#. I submitted a patch to fix this. See the LKML thread
+#. "[patch] Fix type errors in inotify interfaces", 18 Nov 2008
+#. glibc bug filed: https://www.sourceware.org/bugzilla/show_bug.cgi?id=7040
+#. type: Plain text
+#. #-#-#-#-# mageia-cauldron: inotify.7.pot (PACKAGE VERSION) #-#-#-#-#
+#. FIXME . The type of the 'wd' field should probably be "int32_t".
+#. I submitted a patch to fix this. See the LKML thread
+#. "[patch] Fix type errors in inotify interfaces", 18 Nov 2008
+#. glibc bug filed: https://www.sourceware.org/bugzilla/show_bug.cgi?id=7040
+#. type: Plain text
+#. #-#-#-#-# opensuse-leap-15-6: inotify.7.pot (PACKAGE VERSION) #-#-#-#-#
+#. FIXME . The type of the 'wd' field should probably be "int32_t".
+#. I submitted a patch to fix this. See the LKML thread
+#. "[patch] Fix type errors in inotify interfaces", 18 Nov 2008
+#. glibc bug filed: https://www.sourceware.org/bugzilla/show_bug.cgi?id=7040
+#. type: Plain text
+#. #-#-#-#-# opensuse-tumbleweed: inotify.7.pot (PACKAGE VERSION) #-#-#-#-#
+#. FIXME . The type of the 'wd' field should probably be "int32_t".
+#. I submitted a patch to fix this. See the LKML thread
+#. "[patch] Fix type errors in inotify interfaces", 18 Nov 2008
+#. glibc bug filed: https://www.sourceware.org/bugzilla/show_bug.cgi?id=7040
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid ""
+"struct inotify_event {\n"
+" int wd; /* Watch descriptor */\n"
+" uint32_t mask; /* Mask describing event */\n"
+" uint32_t cookie; /* Unique cookie associating related\n"
+" events (for rename(2)) */\n"
+" uint32_t len; /* Size of I<name> field */\n"
+" char name[]; /* Optional null-terminated name */\n"
+"};\n"
+msgstr ""
+"struct inotify_event {\n"
+" int wd; /* дескриптор наблюдаемого */\n"
+" uint32_t mask; /* маска, описывающая событие */\n"
+" uint32_t cookie; /* уникальный cookie, связывающий относящиеся\n"
+" друг к другу события (для rename(2)) */\n"
+" uint32_t len; /* размер поля I<name> */\n"
+" char name[]; /* необязательное имя, завершающееся null */\n"
+"};\n"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"I<wd> identifies the watch for which this event occurs. It is one of the "
+"watch descriptors returned by a previous call to B<inotify_add_watch>(2)."
+msgstr ""
+"В I<wd> указывается сторожок, к которому относится событие. Это один из "
+"дескрипторов сторожка, полученный из вызова B<inotify_add_watch>(2)."
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"I<mask> contains bits that describe the event that occurred (see below)."
+msgstr ""
+"В I<mask> содержатся биты, описывающие возникшее событие (смотрите ниже)."
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"I<cookie> is a unique integer that connects related events. Currently, this "
+"is used only for rename events, and allows the resulting pair of "
+"B<IN_MOVED_FROM> and B<IN_MOVED_TO> events to be connected by the "
+"application. For all other event types, I<cookie> is set to 0."
+msgstr ""
+"Значение I<cookie> — это уникальное целое, которое объединяет связанные "
+"события. В настоящее время используется только для событий переименования и "
+"позволяет приложению объединить возвращаемые B<IN_MOVED_FROM> и "
+"B<IN_MOVED_TO> в пару событий. Для остальных типов событий значение "
+"I<cookie> равно 0."
+
+#. type: Plain text
+#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron
+#: opensuse-leap-15-6 opensuse-tumbleweed
+#, fuzzy
+#| msgid ""
+#| "The I<name> field is present only when an event is returned for a file "
+#| "inside a watched directory; it identifies the filename within to the "
+#| "watched directory. This filename is null-terminated, and may include "
+#| "further null bytes (\\(aq\\e0\\(aq) to align subsequent reads to a "
+#| "suitable address boundary."
+msgid ""
+"The I<name> field is present only when an event is returned for a file "
+"inside a watched directory; it identifies the filename within the watched "
+"directory. This filename is null-terminated, and may include further null "
+"bytes (\\[aq]\\e0\\[aq]) to align subsequent reads to a suitable address "
+"boundary."
+msgstr ""
+"Поле I<name> существует только когда событие возвращается для файла внутри "
+"отслеживаемого каталога; им определяется имя файла внутри отслеживаемого "
+"каталога. Это имя завершается null и может включать дополнительные байты "
+"null («\\e0») для выравнивания на подходящую границу адреса при последующих "
+"операций чтения."
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"The I<len> field counts all of the bytes in I<name>, including the null "
+"bytes; the length of each I<inotify_event> structure is thus I<sizeof(struct "
+"inotify_event)+len>."
+msgstr ""
+"Поле I<len> содержит количество всех байт в I<name>, включая байты null; "
+"длина каждой структуры I<inotify_event> равна I<sizeof(struct "
+"inotify_event)+len>."
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, fuzzy
+#| msgid ""
+#| "The behavior when the buffer given to B<read>(2) is too small to return "
+#| "information about the next event depends on the kernel version: in "
+#| "kernels before 2.6.21, B<read>(2) returns 0; since kernel 2.6.21, "
+#| "B<read>(2) fails with the error B<EINVAL>. Specifying a buffer of size"
+msgid ""
+"The behavior when the buffer given to B<read>(2) is too small to return "
+"information about the next event depends on the kernel version: before Linux "
+"2.6.21, B<read>(2) returns 0; since Linux 2.6.21, B<read>(2) fails with "
+"the error B<EINVAL>. Specifying a buffer of size"
+msgstr ""
+"Если буфер, заданный в B<read>(2), слишком мал для возврата информации о "
+"следующем событии, то поведение зависит от версии ядра: в ядрах до версии "
+"2.6.21, B<read>(2) возвращает 0; начиная с версии 2.6.21, B<read>(2) "
+"завершается с ошибкой B<EINVAL>. Указание размера буфера "
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, fuzzy, no-wrap
+#| msgid " sizeof(struct inotify_event) + NAME_MAX + 1\n"
+msgid "sizeof(struct inotify_event) + NAME_MAX + 1\n"
+msgstr " sizeof(struct inotify_event) + NAME_MAX + 1\n"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid "will be sufficient to read at least one event."
+msgstr "будет достаточно для чтения, по крайней мере, одного события."
+
+#. type: SS
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "inotify events"
+msgstr "События inotify"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"The B<inotify_add_watch>(2) I<mask> argument and the I<mask> field of the "
+"I<inotify_event> structure returned when B<read>(2)ing an inotify file "
+"descriptor are both bit masks identifying inotify events. The following "
+"bits can be specified in I<mask> when calling B<inotify_add_watch>(2) and "
+"may be returned in the I<mask> field returned by B<read>(2):"
+msgstr ""
+"В аргументе B<inotify_add_watch>(2) I<mask> и поле I<mask> структуры "
+"I<inotify_event>, возвращаемых при чтении файлового дескриптора inotify, "
+"содержатся битовые маски, определяющие события inotify. Следующие биты могут "
+"быть заданы в I<mask> при вызове B<inotify_add_watch>(2) и возвращены в поле "
+"I<mask>, возвращаемом B<read>(2):"
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<IN_ACCESS> (+)"
+msgstr "B<IN_ACCESS> (+)"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid "File was accessed (e.g., B<read>(2), B<execve>(2))."
+msgstr "Был произведён доступ к файлу (например, B<read>(2), B<execve>(2))."
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<IN_ATTRIB> (*)"
+msgstr "B<IN_ATTRIB> (*)"
+
+#. FIXME .
+#. Events do not occur for link count changes on a file inside a monitored
+#. directory. This differs from other metadata changes for files inside
+#. a monitored directory.
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, fuzzy
+#| msgid ""
+#| "Metadata changed\\(emfor example, permissions (e.g., B<chmod>(2)), "
+#| "timestamps (e.g., B<utimensat>(2)), extended attributes (B<setxattr>(2)), "
+#| "link count (since Linux 2.6.25; e.g., for the target of B<link>(2) and "
+#| "for B<unlink>(2)), and user/group ID (e.g., B<chown>(2))."
+msgid ""
+"Metadata changed\\[em]for example, permissions (e.g., B<chmod>(2)), "
+"timestamps (e.g., B<utimensat>(2)), extended attributes (B<setxattr>(2)), "
+"link count (since Linux 2.6.25; e.g., for the target of B<link>(2) and for "
+"B<unlink>(2)), and user/group ID (e.g., B<chown>(2))."
+msgstr ""
+"Изменились метаданные — например, права доступа (например, B<chmod>(2)), "
+"отметки времени (например, B<utimensat>(2)), расширенные атрибуты "
+"(B<setxattr>(2)), счётчик ссылок (начиная с Linux 2.6.25; например, для "
+"аргумента назначения B<link>(2) и B<unlink>(2)) и идентификатор пользователя/"
+"группы (например, B<chown>(2))."
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<IN_CLOSE_WRITE> (+)"
+msgstr "B<IN_CLOSE_WRITE> (+)"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid "File opened for writing was closed."
+msgstr "Файл, открытый для записи, был закрыт."
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<IN_CLOSE_NOWRITE> (*)"
+msgstr "B<IN_CLOSE_NOWRITE> (*)"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid "File or directory not opened for writing was closed."
+msgstr "Файл или каталог, не открытый для записи, был закрыт."
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<IN_CREATE> (+)"
+msgstr "B<IN_CREATE> (+)"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"File/directory created in watched directory (e.g., B<open>(2) B<O_CREAT>, "
+"B<mkdir>(2), B<link>(2), B<symlink>(2), B<bind>(2) on a UNIX domain socket)."
+msgstr ""
+"В отслеживаемом каталоге был создан файл/каталог (например, B<open>(2) "
+"B<O_CREAT>, B<mkdir>(2), B<link>(2), B<symlink>(2), B<bind>(2) для доменного "
+"сокета UNIX)."
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<IN_DELETE> (+)"
+msgstr "B<IN_DELETE> (+)"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid "File/directory deleted from watched directory."
+msgstr "В отслеживаемом каталоге был удалён файл/каталог."
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<IN_DELETE_SELF>"
+msgstr "B<IN_DELETE_SELF>"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"Watched file/directory was itself deleted. (This event also occurs if an "
+"object is moved to another filesystem, since B<mv>(1) in effect copies the "
+"file to the other filesystem and then deletes it from the original "
+"filesystem.) In addition, an B<IN_IGNORED> event will subsequently be "
+"generated for the watch descriptor."
+msgstr ""
+"Отслеживаемый файл/каталог был удалён (это событие также возникает, если "
+"объект перемещён в другую файловую систему, так как B<mv>(1), фактически, "
+"копирует файл в другую файловую систему и удаляет его из исходной). Также "
+"затем будет создано событие B<IN_IGNORED> для дескриптора сторожка."
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<IN_MODIFY> (+)"
+msgstr "B<IN_MODIFY> (+)"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid "File was modified (e.g., B<write>(2), B<truncate>(2))."
+msgstr "Файл был изменён (например, B<write>(2), B<truncate>(2))."
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<IN_MOVE_SELF>"
+msgstr "B<IN_MOVE_SELF>"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid "Watched file/directory was itself moved."
+msgstr "Отслеживаемый файл/каталог был перемещён."
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<IN_MOVED_FROM> (+)"
+msgstr "B<IN_MOVED_FROM> (+)"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"Generated for the directory containing the old filename when a file is "
+"renamed."
+msgstr ""
+"При переименовании генерируется для каталога, содержащего старое имя файла."
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<IN_MOVED_TO> (+)"
+msgstr "B<IN_MOVED_TO> (+)"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"Generated for the directory containing the new filename when a file is "
+"renamed."
+msgstr ""
+"При переименовании генерируется для каталога, содержащего новое имя файла."
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<IN_OPEN> (*)"
+msgstr "B<IN_OPEN> (*)"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid "File or directory was opened."
+msgstr "Файл или каталог был открыт."
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"Inotify monitoring is inode-based: when monitoring a file (but not when "
+"monitoring the directory containing a file), an event can be generated for "
+"activity on any link to the file (in the same or a different directory)."
+msgstr ""
+"Наблюдение inotify ведётся за inode: при наблюдении за файлом (но не когда "
+"наблюдение ведётся за каталогом, содержащим файл) событие может "
+"генерироваться при активности по любой ссылке на файл (находящейся в том же "
+"или в другом каталоге)."
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid "When monitoring a directory:"
+msgstr "При наблюдении за каталогом:"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"the events marked above with an asterisk (*) can occur both for the "
+"directory itself and for objects inside the directory; and"
+msgstr ""
+"события, помеченные звёздочкой (*), могут возникать как для самого каталога, "
+"так и для файлов в каталоге; и"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"the events marked with a plus sign (+) occur only for objects inside the "
+"directory (not for the directory itself)."
+msgstr ""
+"события, помеченные знаком плюс (+), могут возникать только для объектов "
+"внутри каталога (но не самого каталога)."
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"I<Note>: when monitoring a directory, events are not generated for the files "
+"inside the directory when the events are performed via a pathname (i.e., a "
+"link) that lies outside the monitored directory."
+msgstr ""
+"I<Замечание>: при слежении за каталогом события не генерируются для файлов "
+"каталога, если событие возникает по пути (т. е., по ссылке), который "
+"находится вне отслеживаемого каталога."
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"When events are generated for objects inside a watched directory, the "
+"I<name> field in the returned I<inotify_event> structure identifies the name "
+"of the file within the directory."
+msgstr ""
+"Когда события генерируются для объектов внутри отслеживаемого каталога, поле "
+"I<name>, возвращаемое в структуре I<inotify_event>, хранит имя файла внутри "
+"этого каталога."
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"The B<IN_ALL_EVENTS> macro is defined as a bit mask of all of the above "
+"events. This macro can be used as the I<mask> argument when calling "
+"B<inotify_add_watch>(2)."
+msgstr ""
+"Макрос B<IN_ALL_EVENTS> определён как битовая маска всех перечисленных выше "
+"событий. Данный макрос можно использовать в качестве аргумента I<mask> в "
+"вызове B<inotify_add_watch>(2)."
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid "Two additional convenience macros are defined:"
+msgstr "Дополнительно, два удобных макроса:"
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<IN_MOVE>"
+msgstr "B<IN_MOVE>"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid "Equates to B<IN_MOVED_FROM | IN_MOVED_TO>."
+msgstr "То же, что и B<IN_MOVED_FROM | IN_MOVED_TO>."
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<IN_CLOSE>"
+msgstr "B<IN_CLOSE>"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid "Equates to B<IN_CLOSE_WRITE | IN_CLOSE_NOWRITE>."
+msgstr "То же, что и B<IN_CLOSE_WRITE | IN_CLOSE_NOWRITE>."
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"The following further bits can be specified in I<mask> when calling "
+"B<inotify_add_watch>(2):"
+msgstr ""
+"Также, при вызове B<inotify_add_watch>(2) в I<mask> могут быть указаны "
+"следующие биты:"
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<IN_DONT_FOLLOW> (since Linux 2.6.15)"
+msgstr "B<IN_DONT_FOLLOW> (начиная с Linux 2.6.15)"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid "Don't dereference I<pathname> if it is a symbolic link."
+msgstr "Не разыменовывать I<pathname>, если это символическая ссылка."
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<IN_EXCL_UNLINK> (since Linux 2.6.36)"
+msgstr "B<IN_EXCL_UNLINK> (начиная с Linux 2.6.36)"
+
+#. commit 8c1934c8d70b22ca8333b216aec6c7d09fdbd6a6
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"By default, when watching events on the children of a directory, events are "
+"generated for children even after they have been unlinked from the "
+"directory. This can result in large numbers of uninteresting events for "
+"some applications (e.g., if watching I</tmp>, in which many applications "
+"create temporary files whose names are immediately unlinked). Specifying "
+"B<IN_EXCL_UNLINK> changes the default behavior, so that events are not "
+"generated for children after they have been unlinked from the watched "
+"directory."
+msgstr ""
+"По умолчанию, при слежении за событиями для потомков каталога, события "
+"генерируются для потомков даже после того, как они будут удалены из "
+"каталога. Это может привести к большому количеству ненужных для приложения "
+"событий (например, если следить за I</tmp>, в котором многие приложения "
+"создают и сразу удаляют временные файлы). Указание B<IN_EXCL_UNLINK> "
+"изменяет поведение по умолчанию, и такие события не генерируются для "
+"потомков после удаления из отслеживаемого каталога."
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<IN_MASK_ADD>"
+msgstr "B<IN_MASK_ADD>"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"If a watch instance already exists for the filesystem object corresponding "
+"to I<pathname>, add (OR) the events in I<mask> to the watch mask (instead of "
+"replacing the mask); the error B<EINVAL> results if B<IN_MASK_CREATE> is "
+"also specified."
+msgstr ""
+"Если экземпляр слежения уже существует для объекта файловой системы "
+"соответствующего I<pathname>, то выполнять добавление (OR) событий в I<mask> "
+"к маске слежения (вместо замены маски); если также указан B<IN_MASK_CREATE>, "
+"то возвращается ошибка B<EINVAL>."
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<IN_ONESHOT>"
+msgstr "B<IN_ONESHOT>"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"Monitor the filesystem object corresponding to I<pathname> for one event, "
+"then remove from watch list."
+msgstr ""
+"Отслеживать объект файловой системы, соответствующий I<pathname> до одного "
+"события, затем удалить объект из списка слежения."
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<IN_ONLYDIR> (since Linux 2.6.15)"
+msgstr "B<IN_ONLYDIR> (начиная с Linux 2.6.15)"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"Watch I<pathname> only if it is a directory; the error B<ENOTDIR> results if "
+"I<pathname> is not a directory. Using this flag provides an application "
+"with a race-free way of ensuring that the monitored object is a directory."
+msgstr ""
+"Следить за I<pathname>, только если это каталог; если I<pathname> не "
+"является каталогом, то возвращается ошибка B<ENOTDIR>. Этот флаг "
+"предоставляет приложению бессостязательный способ убедиться, что "
+"отслеживаемый объект — каталог."
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<IN_MASK_CREATE> (since Linux 4.18)"
+msgstr "B<IN_MASK_CREATE> (начиная с Linux 4.18)"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"Watch I<pathname> only if it does not already have a watch associated with "
+"it; the error B<EEXIST> results if I<pathname> is already being watched."
+msgstr ""
+"Следить за I<pathname> только, если за ним никто не следит; если уже "
+"выполняется слежение за I<pathname>, то возвращается ошибка B<EEXIST>."
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"Using this flag provides an application with a way of ensuring that new "
+"watches do not modify existing ones. This is useful because multiple paths "
+"may refer to the same inode, and multiple calls to B<inotify_add_watch>(2) "
+"without this flag may clobber existing watch masks."
+msgstr ""
+"С помощью этого флага приложение может быть уверено, что новые слежения не "
+"изменят существующих. Это полезно, так как несколько путей могут ссылаться "
+"на одну иноду, а несколько вызовов B<inotify_add_watch>(2) без этого флага "
+"могут затереть существующие маски слежения."
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"The following bits may be set in the I<mask> field returned by B<read>(2):"
+msgstr ""
+"Следующие биты могут быть установлены в поле I<mask> при возврате из "
+"B<read>(2):"
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<IN_IGNORED>"
+msgstr "B<IN_IGNORED>"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"Watch was removed explicitly (B<inotify_rm_watch>(2)) or automatically "
+"(file was deleted, or filesystem was unmounted). See also BUGS."
+msgstr ""
+"Слежение было снято явно (B<inotify_rm_watch>(2)) или автоматически (файл "
+"был удалён или размонтирована файловая система). Также смотрите ДЕФЕКТЫ."
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<IN_ISDIR>"
+msgstr "B<IN_ISDIR>"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid "Subject of this event is a directory."
+msgstr "Объект этого события — каталог."
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<IN_Q_OVERFLOW>"
+msgstr "B<IN_Q_OVERFLOW>"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid "Event queue overflowed (I<wd> is -1 for this event)."
+msgstr ""
+"Переполнена очередь событий (для этого события значение I<wd> равно -1)."
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<IN_UNMOUNT>"
+msgstr "B<IN_UNMOUNT>"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"Filesystem containing watched object was unmounted. In addition, an "
+"B<IN_IGNORED> event will subsequently be generated for the watch descriptor."
+msgstr ""
+"Файловая система, содержащая отслеживаемый объект, была размонтирована. "
+"Также, будет сгенерировано событие B<IN_IGNORED> для дескриптора сторожка."
+
+#. type: SS
+#: 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 ""
+"Suppose an application is watching the directory I<dir> and the file I<dir/"
+"myfile> for all events. The examples below show some events that will be "
+"generated for these two objects."
+msgstr ""
+"Предположим, приложение следит за всеми событиями для каталога I<dir> и "
+"файла I<dir/myfile>. В примере ниже показаны некоторые события, которые "
+"будут сгенерированы для этих двух объектов."
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "fd = open(\"dir/myfile\", O_RDWR);"
+msgstr "fd = open(\"dir/myfile\", O_RDWR);"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid "Generates B<IN_OPEN> events for both I<dir> and I<dir/myfile>."
+msgstr "Генерируется событие B<IN_OPEN> и для I<dir>, и для I<dir/myfile>."
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "read(fd, buf, count);"
+msgstr "read(fd, buf, count);"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid "Generates B<IN_ACCESS> events for both I<dir> and I<dir/myfile>."
+msgstr "Генерируется событие B<IN_ACCESS> и для I<dir>, и для I<dir/myfile>."
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "write(fd, buf, count);"
+msgstr "write(fd, buf, count);"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid "Generates B<IN_MODIFY> events for both I<dir> and I<dir/myfile>."
+msgstr "Генерируется событие B<IN_MODIFY> и для I<dir>, и для I<dir/myfile>."
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "fchmod(fd, mode);"
+msgstr "fchmod(fd, mode);"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid "Generates B<IN_ATTRIB> events for both I<dir> and I<dir/myfile>."
+msgstr "Генерируется событие B<IN_ATTRIB> и для I<dir>, и для I<dir/myfile>."
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "close(fd);"
+msgstr "close(fd);"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid "Generates B<IN_CLOSE_WRITE> events for both I<dir> and I<dir/myfile>."
+msgstr ""
+"Генерируется событие B<IN_CLOSE_WRITE> и для I<dir>, и для I<dir/myfile>."
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"Suppose an application is watching the directories I<dir1> and I<dir2>, and "
+"the file I<dir1/myfile>. The following examples show some events that may "
+"be generated."
+msgstr ""
+"Предположим, приложение следит за всеми событиями для каталогов I<dir1> и "
+"I<dir2> и файла I<dir1/myfile>. В примере ниже показаны некоторые события, "
+"которые могут быть сгенерированы."
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "link(\"dir1/myfile\", \"dir2/new\");"
+msgstr "link(\"dir1/myfile\", \"dir2/new\");"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"Generates an B<IN_ATTRIB> event for I<myfile> and an B<IN_CREATE> event for "
+"I<dir2>."
+msgstr ""
+"Генерируется событие B<IN_ATTRIB> для I<myfile> и событие B<IN_CREATE> для "
+"I<dir2>."
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "rename(\"dir1/myfile\", \"dir2/myfile\");"
+msgstr "rename(\"dir1/myfile\", \"dir2/myfile\");"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"Generates an B<IN_MOVED_FROM> event for I<dir1>, an B<IN_MOVED_TO> event for "
+"I<dir2>, and an B<IN_MOVE_SELF> event for I<myfile>. The B<IN_MOVED_FROM> "
+"and B<IN_MOVED_TO> events will have the same I<cookie> value."
+msgstr ""
+"Генерируется событие B<IN_MOVED_FROM> для I<dir1>, событие B<IN_MOVED_TO> "
+"для I<dir2> и событие B<IN_MOVE_SELF> для I<myfile>. События "
+"B<IN_MOVED_FROM> и B<IN_MOVED_TO> будут содержать одинаковое значение "
+"I<cookie>."
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"Suppose that I<dir1/xx> and I<dir2/yy> are (the only) links to the same "
+"file, and an application is watching I<dir1>, I<dir2>, I<dir1/xx>, and "
+"I<dir2/yy>. Executing the following calls in the order given below will "
+"generate the following events:"
+msgstr ""
+"Предположим, что I<dir1/xx> и I<dir2/yy> только ссылки на один файл и "
+"приложение следит за I<dir1>, I<dir2>, I<dir1/xx> и I<dir2/yy>. При "
+"выполнение следующих вызовов в порядке, указанном ниже, будут сгенерированы "
+"следующие события:"
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "unlink(\"dir2/yy\");"
+msgstr "unlink(\"dir2/yy\");"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"Generates an B<IN_ATTRIB> event for I<xx> (because its link count changes) "
+"and an B<IN_DELETE> event for I<dir2>."
+msgstr ""
+"Генерируется событие B<IN_ATTRIB> для I<xx> (так как изменился его счётчик "
+"ссылок) и событие B<IN_DELETE> для I<dir2>."
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "unlink(\"dir1/xx\");"
+msgstr "unlink(\"dir1/xx\");"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"Generates B<IN_ATTRIB>, B<IN_DELETE_SELF>, and B<IN_IGNORED> events for "
+"I<xx>, and an B<IN_DELETE> event for I<dir1>."
+msgstr ""
+"Генерируется событие B<IN_ATTRIB>, B<IN_DELETE_SELF> и B<IN_IGNORED> для "
+"I<xx> и событие B<IN_DELETE> для I<dir1>."
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"Suppose an application is watching the directory I<dir> and (the empty) "
+"directory I<dir/subdir>. The following examples show some events that may "
+"be generated."
+msgstr ""
+"Предположим, приложение следит за каталогом I<dir> и пустым каталогом I<dir/"
+"subdir>. В примере ниже показаны некоторые события, которые могут быть "
+"сгенерированы."
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "mkdir(\"dir/new\", mode);"
+msgstr "mkdir(\"dir/new\", mode);"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid "Generates an B<IN_CREATE | IN_ISDIR> event for I<dir>."
+msgstr "Генерируется событие B<IN_CREATE | IN_ISDIR> для I<dir>."
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "rmdir(\"dir/subdir\");"
+msgstr "rmdir(\"dir/subdir\");"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"Generates B<IN_DELETE_SELF> and B<IN_IGNORED> events for I<subdir>, and an "
+"B<IN_DELETE | IN_ISDIR> event for I<dir>."
+msgstr ""
+"Генерируются события B<IN_DELETE_SELF> и B<IN_IGNORED> для I<subdir> и "
+"событие B<IN_DELETE | IN_ISDIR> для I<dir>."
+
+#. type: SS
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "/proc interfaces"
+msgstr "Интерфейс /proc"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"The following interfaces can be used to limit the amount of kernel memory "
+"consumed by inotify:"
+msgstr ""
+"Для ограничения потребления inotify памяти ядра, можно использовать "
+"следующие интерфейсы:"
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "I</proc/sys/fs/inotify/max_queued_events>"
+msgstr "I</proc/sys/fs/inotify/max_queued_events>"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"The value in this file is used when an application calls B<inotify_init>(2) "
+"to set an upper limit on the number of events that can be queued to the "
+"corresponding inotify instance. Events in excess of this limit are dropped, "
+"but an B<IN_Q_OVERFLOW> event is always generated."
+msgstr ""
+"Значение в этом файле используется когда приложение вызывает "
+"B<inotify_init>(2) для установки верхнего порога количества событий, которые "
+"могут поместиться в очередь соответствующего экземпляра inotify. События, "
+"превысившие это ограничение, отбрасываются, но событие B<IN_Q_OVERFLOW> "
+"генерируется всегда."
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "I</proc/sys/fs/inotify/max_user_instances>"
+msgstr "I</proc/sys/fs/inotify/max_user_instances>"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"This specifies an upper limit on the number of inotify instances that can be "
+"created per real user ID."
+msgstr ""
+"В этом файле задаётся ограничение на количество экземпляров inotify, которые "
+"могут быть созданы для одного реального идентификатора пользователя."
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "I</proc/sys/fs/inotify/max_user_watches>"
+msgstr "I</proc/sys/fs/inotify/max_user_watches>"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"This specifies an upper limit on the number of watches that can be created "
+"per real user ID."
+msgstr ""
+"В этом файле задаётся ограничение на количество сторожков, которые могут "
+"быть созданы для одного реального идентификатора пользователя."
+
+#. type: SH
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "STANDARDS"
+msgstr "СТАНДАРТЫ"
+
+#. type: Plain text
+#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron
+#: opensuse-leap-15-6 opensuse-tumbleweed
+msgid "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-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, fuzzy
+#| msgid ""
+#| "Inotify was merged into the 2.6.13 Linux kernel. The required library "
+#| "interfaces were added to glibc in version 2.4. (B<IN_DONT_FOLLOW>, "
+#| "B<IN_MASK_ADD>, and B<IN_ONLYDIR> were added in glibc version 2.5.)"
+msgid ""
+"Inotify was merged into Linux 2.6.13. The required library interfaces were "
+"added in glibc 2.4. (B<IN_DONT_FOLLOW>, B<IN_MASK_ADD>, and B<IN_ONLYDIR> "
+"were added in glibc 2.5.)"
+msgstr ""
+"Программный интерфейс inotify был добавлен в ядро Linux версии 2.6.13. "
+"Необходимые библиотечные интерфейсы добавлены в glibc версии 2.4 "
+"(B<IN_DONT_FOLLOW>, B<IN_MASK_ADD> и B<IN_ONLYDIR> добавлены в glibc версии "
+"2.5)."
+
+#. 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 ""
+"Inotify file descriptors can be monitored using B<select>(2), B<poll>(2), "
+"and B<epoll>(7). When an event is available, the file descriptor indicates "
+"as readable."
+msgstr ""
+"За файловыми дескрипторами inotify можно наблюдать с помощью 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 ""
+"Since Linux 2.6.25, signal-driven I/O notification is available for inotify "
+"file descriptors; see the discussion of B<F_SETFL> (for setting the "
+"B<O_ASYNC> flag), B<F_SETOWN>, and B<F_SETSIG> in B<fcntl>(2). The "
+"I<siginfo_t> structure (described in B<sigaction>(2)) that is passed to the "
+"signal handler has the following fields set: I<si_fd> is set to the inotify "
+"file descriptor number; I<si_signo> is set to the signal number; I<si_code> "
+"is set to B<POLL_IN>; and B<POLLIN> is set in I<si_band>."
+msgstr ""
+"Начиная с Linux 2.6.25, для файловых дескрипторов inotify стали доступны "
+"уведомления ввода-вывода посредством сигналов; смотрите обсуждение "
+"B<F_SETFL> (для установки флага B<O_ASYNC>), B<F_SETOWN> и B<F_SETSIG> в "
+"B<fcntl>(2). Структура I<siginfo_t> (описана в B<sigaction>(2)), "
+"передаваемая обработчику сигнала, содержит следующие настройки полей: в "
+"I<si_fd> указывается номер файлового дескриптора inotify; в I<si_signo> "
+"указывается номер сигнала; в I<si_code> указывается B<POLL_IN>; в I<si_band> "
+"указывается B<POLLIN>."
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"If successive output inotify events produced on the inotify file descriptor "
+"are identical (same I<wd>, I<mask>, I<cookie>, and I<name>), then they are "
+"coalesced into a single event if the older event has not yet been read (but "
+"see BUGS). This reduces the amount of kernel memory required for the event "
+"queue, but also means that an application can't use inotify to reliably "
+"count file events."
+msgstr ""
+"Если последующие события inotify, выводимые в файловый дескриптор inotify, "
+"одинаковы (содержат одинаковые значения I<wd>, I<mask>, I<cookie> и "
+"I<name>), то они сливаются в одно событие, если самое старое событие ещё не "
+"прочитано (но смотрите ДЕФЕКТЫ). Это сокращает требуемое количество памяти "
+"ядра для очереди событий, но также означает, что приложение не может "
+"использовать inotify для надёжного подсчёта файловых событий."
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"The events returned by reading from an inotify file descriptor form an "
+"ordered queue. Thus, for example, it is guaranteed that when renaming from "
+"one directory to another, events will be produced in the correct order on "
+"the inotify file descriptor."
+msgstr ""
+"События, возвращаемые при чтении из файлового дескриптора inotify, формируют "
+"упорядоченную очередь. То есть, например, это гарантирует, что при "
+"переименовании одного каталога в другой, события в файловом дескрипторе "
+"inotify будут созданы в правильном порядке."
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, fuzzy
+#| msgid ""
+#| "The set of watch descriptors that is being monitored via an inotify file "
+#| "descriptor can be viewed via the entry for the inotify file descriptor in "
+#| "the process's I</proc/[pid]/fdinfo> directory. See B<proc>(5) for "
+#| "further details. The B<FIONREAD> B<ioctl>(2) returns the number of "
+#| "bytes available to read from an inotify file descriptor."
+msgid ""
+"The set of watch descriptors that is being monitored via an inotify file "
+"descriptor can be viewed via the entry for the inotify file descriptor in "
+"the process's I</proc/>pidI</fdinfo> directory. See B<proc>(5) for further "
+"details. The B<FIONREAD> B<ioctl>(2) returns the number of bytes available "
+"to read from an inotify file descriptor."
+msgstr ""
+"Набор наблюдаемых дескрипторов, которые отслеживаются через файловый "
+"дескриптор inotify, можно увидеть из записи для файлового дескриптора "
+"inotify в каталоге процесса I</proc/[pid]/fdinfo>. Дополнительную информацию "
+"смотрите в B<proc>(5). Вызов B<FIONREAD> B<ioctl>(2) возвращает количество "
+"байт, доступных для чтения из файлового дескриптора inotify."
+
+#. type: SS
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "Limitations and caveats"
+msgstr "Ограничения и подводные камни"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"The inotify API provides no information about the user or process that "
+"triggered the inotify event. In particular, there is no easy way for a "
+"process that is monitoring events via inotify to distinguish events that it "
+"triggers itself from those that are triggered by other processes."
+msgstr ""
+"Программный интерфейс inotify не предоставляет информацию о пользователе или "
+"процессе, из-за которого возникло событие. В частности, для процесса, "
+"отслеживающего события через inotify, нет простого способа определить, "
+"возникли события из-за его действий или из-за действий других процессов."
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"Inotify reports only events that a user-space program triggers through the "
+"filesystem API. As a result, it does not catch remote events that occur on "
+"network filesystems. (Applications must fall back to polling the filesystem "
+"to catch such events.) Furthermore, various pseudo-filesystems such as I</"
+"proc>, I</sys>, and I</dev/pts> are not monitorable with inotify."
+msgstr ""
+"Inotify сообщает только о событиях, которые возникли из-за пользовательских "
+"программ, использовавших программный интерфейс файловой системы. То есть, не "
+"возникает событий для файловых систем, доступных по сети (приложения должны "
+"использовать старый метод опроса файловой системы для слежения за такими "
+"событиями). Кроме того, различные псевдо-файловый системы, такие как I</"
+"proc>, I</sys> и I</dev/pts>, не отслеживаются через inotify."
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"The inotify API does not report file accesses and modifications that may "
+"occur because of B<mmap>(2), B<msync>(2), and B<munmap>(2)."
+msgstr ""
+"Программный интерфейс inotify не сообщает о доступе и изменениях, которые "
+"могут произойти из-за B<mmap>(2), B<msync>(2) и B<munmap>(2)."
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"The inotify API identifies affected files by filename. However, by the time "
+"an application processes an inotify event, the filename may already have "
+"been deleted or renamed."
+msgstr ""
+"Программный интерфейс inotify в качестве идентификаторов объектов использует "
+"имена файлов. Однако, в момент обработки приложением события inotify, имя "
+"файла может быть уже удалено или переименовано."
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"The inotify API identifies events via watch descriptors. It is the "
+"application's responsibility to cache a mapping (if one is needed) between "
+"watch descriptors and pathnames. Be aware that directory renamings may "
+"affect multiple cached pathnames."
+msgstr ""
+"Программный интерфейс inotify различает события по их дескрипторам "
+"сторожков. Приложение само должно кэшировать сопоставление (если нужно) "
+"дескрипторов сторожков и имён. Имейте в виду, что переименование каталога "
+"может повлиять на несколько кэшированных путей."
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"Inotify monitoring of directories is not recursive: to monitor "
+"subdirectories under a directory, additional watches must be created. This "
+"can take a significant amount time for large directory trees."
+msgstr ""
+"Отслеживание каталогов через inotify ведётся не рекурсивно: чтобы "
+"отслеживать подкаталоги, нужно создать дополнительные сторожки. Это может "
+"занять много времени при большом дереве каталога."
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"If monitoring an entire directory subtree, and a new subdirectory is created "
+"in that tree or an existing directory is renamed into that tree, be aware "
+"that by the time you create a watch for the new subdirectory, new files (and "
+"subdirectories) may already exist inside the subdirectory. Therefore, you "
+"may want to scan the contents of the subdirectory immediately after adding "
+"the watch (and, if desired, recursively add watches for any subdirectories "
+"that it contains)."
+msgstr ""
+"Если отслеживается полное дерево каталога и создаётся новый каталог в этом "
+"дереве или существующий каталог переименовывается в этом дереве, учтите, что "
+"на момент создания сторожка за новым подкаталогом, в подкаталоге могут уже "
+"существовать новые файлы (и подкаталоги). Поэтому вам может потребоваться "
+"сканировать содержимое подкаталога сразу после добавления сторожка (и, если "
+"нужно, рекурсивно добавить сторожки для всех подкаталогов, которые в нём "
+"есть)."
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"Note that the event queue can overflow. In this case, events are lost. "
+"Robust applications should handle the possibility of lost events "
+"gracefully. For example, it may be necessary to rebuild part or all of the "
+"application cache. (One simple, but possibly expensive, approach is to "
+"close the inotify file descriptor, empty the cache, create a new inotify "
+"file descriptor, and then re-create watches and cache entries for the "
+"objects to be monitored.)"
+msgstr ""
+"Заметим, что очередь событий может переполниться. В этом случае события "
+"теряются. Корректные приложения должны учитывать возможность пропажи "
+"событий. Например, может потребоваться перестроить часть или весь кэш "
+"приложения (один простой, но, возможно, затратный способ, это закрыть "
+"файловый дескриптор inotify, опустошить кэш, создать новый файловый "
+"дескриптор inotify и затем пересоздать сторожки и записи в кэше для "
+"отслеживаемых объектов)."
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"If a filesystem is mounted on top of a monitored directory, no event is "
+"generated, and no events are generated for objects immediately under the new "
+"mount point. If the filesystem is subsequently unmounted, events will "
+"subsequently be generated for the directory and the objects it contains."
+msgstr ""
+"Если файловая система смонтирована поверх отслеживаемого каталога, то "
+"событие не генерируются, а также не генерируются события для объектов, "
+"находящихся в новой точке монтирования на первом уровне. Если в дальнейшем "
+"файловая система отмонтируется, то события начнут генерироваться для "
+"каталога и содержащихся в нём объектов."
+
+#. type: SS
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "Dealing with rename() events"
+msgstr "Работа с событиями rename()"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"As noted above, the B<IN_MOVED_FROM> and B<IN_MOVED_TO> event pair that is "
+"generated by B<rename>(2) can be matched up via their shared cookie value. "
+"However, the task of matching has some challenges."
+msgstr ""
+"Как указывалось выше, из событий B<IN_MOVED_FROM> и B<IN_MOVED_TO>, "
+"генерируемых B<rename>(2), можно определить пару по их одинаковому значению "
+"cookie. Однако, с этой задачей есть несколько проблем."
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"These two events are usually consecutive in the event stream available when "
+"reading from the inotify file descriptor. However, this is not guaranteed. "
+"If multiple processes are triggering events for monitored objects, then (on "
+"rare occasions) an arbitrary number of other events may appear between the "
+"B<IN_MOVED_FROM> and B<IN_MOVED_TO> events. Furthermore, it is not "
+"guaranteed that the event pair is atomically inserted into the queue: there "
+"may be a brief interval where the B<IN_MOVED_FROM> has appeared, but the "
+"B<IN_MOVED_TO> has not."
+msgstr ""
+"Эти два события, обычно, стоят друг за другом в потоке событий, если читать "
+"из файлового дескриптора inotify. Однако, это не гарантируется. Если "
+"несколько процессов создают события для отслеживаемых объектов, то (в редких "
+"случаях) произвольное количество других событий может появиться между "
+"событиями B<IN_MOVED_FROM> и B<IN_MOVED_TO>. Кроме того, не гарантируется, "
+"что пара событий вставляется в очередь атомарно: может существовать короткий "
+"интервал, в котором B<IN_MOVED_FROM> уже появилось, а B<IN_MOVED_TO> ещё нет."
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"Matching up the B<IN_MOVED_FROM> and B<IN_MOVED_TO> event pair generated by "
+"B<rename>(2) is thus inherently racy. (Don't forget that if an object is "
+"renamed outside of a monitored directory, there may not even be an "
+"B<IN_MOVED_TO> event.) Heuristic approaches (e.g., assume the events are "
+"always consecutive) can be used to ensure a match in most cases, but will "
+"inevitably miss some cases, causing the application to perceive the "
+"B<IN_MOVED_FROM> and B<IN_MOVED_TO> events as being unrelated. If watch "
+"descriptors are destroyed and re-created as a result, then those watch "
+"descriptors will be inconsistent with the watch descriptors in any pending "
+"events. (Re-creating the inotify file descriptor and rebuilding the cache "
+"may be useful to deal with this scenario.)"
+msgstr ""
+"Соответствие B<IN_MOVED_FROM> и B<IN_MOVED_TO> паре событий, сгенерированных "
+"B<rename>(2), по сути, просто (не забудьте, что если объект "
+"переименовывается вне отслеживаемого каталога, то может не быть даже события "
+"B<IN_MOVED_TO>). Можно использовать эвристические предположения (например, "
+"что события всегда следуют друг за другом), что работает в большинстве "
+"случаев, но неминуемо не сработает в некоторых случаях, в которых приложение "
+"посчитает события B<IN_MOVED_FROM> и B<IN_MOVED_TO> несвязными. Если в "
+"результате дескрипторы сторожков будут уничтожены и пересозданы, то такие "
+"дескрипторы будут несогласованны с дескрипторами сторожков для любых "
+"ожидающих событий (пересоздание файлового дескриптора inotify и пересборка "
+"кэша может быть полезна в этом случае)."
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, fuzzy
+#| msgid ""
+#| "Applications should also allow for the possibility that the "
+#| "B<IN_MOVED_FROM> event was the last event that could fit in the buffer "
+#| "returned by the current call to B<read>(2), and the accompanying "
+#| "B<IN_MOVED_TO> event might be fetched only on the next B<read>(2), which "
+#| "should be done with a (small) timeout to allow for the fact that "
+#| "insertion of the B<IN_MOVED_FROM>-B<IN_MOVED_TO> event pair is not "
+#| "atomic, and also the possibility that there may not be any B<IN_MOVED_TO> "
+#| "event."
+msgid ""
+"Applications should also allow for the possibility that the B<IN_MOVED_FROM> "
+"event was the last event that could fit in the buffer returned by the "
+"current call to B<read>(2), and the accompanying B<IN_MOVED_TO> event might "
+"be fetched only on the next B<read>(2), which should be done with a (small) "
+"timeout to allow for the fact that insertion of the "
+"B<IN_MOVED_FROM>+B<IN_MOVED_TO> event pair is not atomic, and also the "
+"possibility that there may not be any B<IN_MOVED_TO> event."
+msgstr ""
+"Также приложения должны учитывать возможность того, что событие "
+"B<IN_MOVED_FROM> — последнее событие, которое попало в буфер, возвращаемый "
+"текущим вызовом B<read>(2), и сопутствующее событие B<IN_MOVED_TO> может "
+"быть получено только при следующем чтении B<read>(2), которое должно быть "
+"выполнено с (коротким) промежутком, позволяющим фактическую не атомарную "
+"вставку пары событий B<IN_MOVED_FROM>-B<IN_MOVED_TO>, и также возможность "
+"того, что может отсутствовать событие B<IN_MOVED_TO>."
+
+#. type: SH
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "BUGS"
+msgstr "ДЕФЕКТЫ"
+
+#. commit 820c12d5d6c0890bc93dd63893924a13041fdc35
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"Before Linux 3.19, B<fallocate>(2) did not create any inotify events. "
+"Since Linux 3.19, calls to B<fallocate>(2) generate B<IN_MODIFY> events."
+msgstr ""
+"До Linux 3.19, B<fallocate>(2) не создавал события inotify. Начиная с Linux "
+"3.19, вызов B<fallocate>(2) генерирует событие B<IN_MODIFY>."
+
+#. FIXME . kernel commit 611da04f7a31b2208e838be55a42c7a1310ae321
+#. implies that unmount events were buggy since Linux 2.6.11 to Linux 2.6.36
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, fuzzy
+#| msgid ""
+#| "In kernels before 2.6.16, the B<IN_ONESHOT> I<mask> flag does not work."
+msgid "Before Linux 2.6.16, the B<IN_ONESHOT> I<mask> flag does not work."
+msgstr "В ядрах до 2.6.16 флаг B<IN_ONESHOT> в I<mask> не работает."
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"As originally designed and implemented, the B<IN_ONESHOT> flag did not cause "
+"an B<IN_IGNORED> event to be generated when the watch was dropped after one "
+"event. However, as an unintended effect of other changes, since Linux "
+"2.6.36, an B<IN_IGNORED> event is generated in this case."
+msgstr ""
+"В первоначальной задумке и реализации флаг B<IN_ONESHOT> не приводил к "
+"генерации события B<IN_IGNORED>, если наблюдение отменялось после одного "
+"события. Однако, как непреднамеренный эффект других изменений, начиная с "
+"Linux 2.6.36, событие B<IN_IGNORED> в этом случае генерируется."
+
+#. commit 1c17d18e3775485bf1e0ce79575eb637a94494a2
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, fuzzy
+#| msgid ""
+#| "Before kernel 2.6.25, the kernel code that was intended to coalesce "
+#| "successive identical events (i.e., the two most recent events could "
+#| "potentially be coalesced if the older had not yet been read) instead "
+#| "checked if the most recent event could be coalesced with the I<oldest> "
+#| "unread event."
+msgid ""
+"Before Linux 2.6.25, the kernel code that was intended to coalesce "
+"successive identical events (i.e., the two most recent events could "
+"potentially be coalesced if the older had not yet been read) instead "
+"checked if the most recent event could be coalesced with the I<oldest> "
+"unread event."
+msgstr ""
+"До ядра версии 2.6.25, код ядра, который отвечал за объединение последующих "
+"одинаковых событий (т. е., два самых новых события могли быть объединены, "
+"если старое событие ещё не было прочитано), вместо этого проверял, можно ли "
+"объединить самое новое событие с I<самым старым> непрочитанным событием."
+
+#. FIXME . https://bugzilla.kernel.org/show_bug.cgi?id=77111
+#. type: Plain text
+#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron
+#: opensuse-tumbleweed
+#, fuzzy
+#| msgid ""
+#| "When a watch descriptor is removed by calling B<inotify_rm_watch>(2) (or "
+#| "because a watch file is deleted or the filesystem that contains it is "
+#| "unmounted), any pending unread events for that watch descriptor remain "
+#| "available to read. As watch descriptors are subsequently allocated with "
+#| "B<inotify_add_watch>(2), the kernel cycles through the range of possible "
+#| "watch descriptors (0 to B<INT_MAX>) incrementally. When allocating a "
+#| "free watch descriptor, no check is made to see whether that watch "
+#| "descriptor number has any pending unread events in the inotify queue. "
+#| "Thus, it can happen that a watch descriptor is reallocated even when "
+#| "pending unread events exist for a previous incarnation of that watch "
+#| "descriptor number, with the result that the application might then read "
+#| "those events and interpret them as belonging to the file associated with "
+#| "the newly recycled watch descriptor. In practice, the likelihood of "
+#| "hitting this bug may be extremely low, since it requires that an "
+#| "application cycle through B<INT_MAX> watch descriptors, release a watch "
+#| "descriptor while leaving unread events for that watch descriptor in the "
+#| "queue, and then recycle that watch descriptor. For this reason, and "
+#| "because there have been no reports of the bug occurring in real-world "
+#| "applications, as of Linux 3.15, no kernel changes have yet been made to "
+#| "eliminate this possible bug."
+msgid ""
+"When a watch descriptor is removed by calling B<inotify_rm_watch>(2) (or "
+"because a watch file is deleted or the filesystem that contains it is "
+"unmounted), any pending unread events for that watch descriptor remain "
+"available to read. As watch descriptors are subsequently allocated with "
+"B<inotify_add_watch>(2), the kernel cycles through the range of possible "
+"watch descriptors (1 to B<INT_MAX>) incrementally. When allocating a free "
+"watch descriptor, no check is made to see whether that watch descriptor "
+"number has any pending unread events in the inotify queue. Thus, it can "
+"happen that a watch descriptor is reallocated even when pending unread "
+"events exist for a previous incarnation of that watch descriptor number, "
+"with the result that the application might then read those events and "
+"interpret them as belonging to the file associated with the newly recycled "
+"watch descriptor. In practice, the likelihood of hitting this bug may be "
+"extremely low, since it requires that an application cycle through "
+"B<INT_MAX> watch descriptors, release a watch descriptor while leaving "
+"unread events for that watch descriptor in the queue, and then recycle that "
+"watch descriptor. For this reason, and because there have been no reports "
+"of the bug occurring in real-world applications, as of Linux 3.15, no kernel "
+"changes have yet been made to eliminate this possible bug."
+msgstr ""
+"Когда дескриптор сторожка удаляется вызовом B<inotify_rm_watch>(2) (или из-"
+"за удаления отслеживаемого файла, или размонтирования содержащей его "
+"файловой системы), все ожидающие непрочитанные события для этого дескриптора "
+"сторожка остаются доступными для чтения. Так как дескрипторы сторожков в "
+"дальнейшем циклически выделяются B<inotify_add_watch>(2), ядро поступательно "
+"проходит через диапазон возможных дескрипторов сторожков (от 0 до "
+"B<INT_MAX>). При выделении свободного дескриптора сторожка для выбранного "
+"номера не производится проверка того, есть ли какие-то ожидающие "
+"непрочитанные события в очереди inotify с таким номером или нет. То есть "
+"может случиться так, что дескриптор сторожка выделяется повторно даже когда "
+"существуют ожидающие непрочитанные события, оставшиеся от предыдущего "
+"выделения дескриптора сторожка с тем же номером; в результате приложение "
+"может прочесть эти события и посчитать их как принадлежащие файлу, "
+"связанному с новым повторно задействованным дескриптором сторожка. На "
+"практике, вероятность столкновения с этой ошибкой может быть чрезвычайно "
+"низка, так как для этого требуется, чтобы приложения циклически перебрало "
+"все B<INT_MAX> дескрипторов сторожков, освободило дескриптор сторожка и "
+"оставило непрочитанные события этого дескриптора сторожка в очереди, а затем "
+"повторно задействовало этот дескриптор сторожка. По этой причине и из-за "
+"того, что ещё никто не сообщал об этой ошибке в реальности, на момент "
+"актуальности Linux 3.15, в ядре ничего не было сделано для того, чтобы "
+"устранить этот дефект."
+
+#. 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
+#, fuzzy
+#| msgid ""
+#| "The following program demonstrates the usage of the inotify API. It "
+#| "marks the directories passed as a command-line arguments and waits for "
+#| "events of type B<IN_OPEN>, B<IN_CLOSE_NOWRITE> and B<IN_CLOSE_WRITE>."
+msgid ""
+"The following program demonstrates the usage of the inotify API. It marks "
+"the directories passed as a command-line arguments and waits for events of "
+"type B<IN_OPEN>, B<IN_CLOSE_NOWRITE>, and B<IN_CLOSE_WRITE>."
+msgstr ""
+"Следующая программа демонстрирует использование программного интерфейса "
+"inotify. Она помечает каталоги, переданной в аргументах командной строки, и "
+"ждёт событий с типом B<IN_OPEN>, B<IN_CLOSE_NOWRITE> и B<IN_CLOSE_WRITE>."
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"The following output was recorded while editing the file I</home/user/temp/"
+"foo> and listing directory I</tmp>. Before the file and the directory were "
+"opened, B<IN_OPEN> events occurred. After the file was closed, an "
+"B<IN_CLOSE_WRITE> event occurred. After the directory was closed, an "
+"B<IN_CLOSE_NOWRITE> event occurred. Execution of the program ended when the "
+"user pressed the ENTER key."
+msgstr ""
+"Следующий вывод был записан при редактировании файла I</home/user/temp/foo> "
+"и просмотра каталога I</tmp>. Перед открытием файла и каталога произошли "
+"события B<IN_OPEN>. После закрытия файла произошло событие "
+"B<IN_CLOSE_WRITE>. После закрытия каталога произошло событие "
+"B<IN_CLOSE_NOWRITE>. Выполнение программы закончилось после нажатия "
+"пользователем клавиши ENTER."
+
+#. type: SS
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "Example output"
+msgstr "Пример вывода"
+
+#. type: Plain text
+#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron
+#: opensuse-tumbleweed
+#, fuzzy, no-wrap
+#| msgid ""
+#| "$ B<./a.out /tmp /home/user/temp>\n"
+#| "Press enter key to terminate.\n"
+#| "Listening for events.\n"
+#| "IN_OPEN: /home/user/temp/foo [file]\n"
+#| "IN_CLOSE_WRITE: /home/user/temp/foo [file]\n"
+#| "IN_OPEN: /tmp/ [directory]\n"
+#| "IN_CLOSE_NOWRITE: /tmp/ [directory]\n"
+msgid ""
+"$ B<./a.out /tmp /home/user/temp>\n"
+"Press enter key to terminate.\n"
+"Listening for events.\n"
+"IN_OPEN: /home/user/temp/foo [file]\n"
+"IN_CLOSE_WRITE: /home/user/temp/foo [file]\n"
+"IN_OPEN: /tmp/ [directory]\n"
+"IN_CLOSE_NOWRITE: /tmp/ [directory]\n"
+"\\&\n"
+"Listening for events stopped.\n"
+msgstr ""
+"$ B<./a.out /tmp /home/user/temp>\n"
+"Нажмите ENTER для завершения работы.\n"
+"Ожидание событий.\n"
+"IN_OPEN: /home/user/temp/foo [файл]\n"
+"IN_CLOSE_WRITE: /home/user/temp/foo [файл]\n"
+"IN_OPEN: /tmp/ [каталог]\n"
+"IN_CLOSE_NOWRITE: /tmp/ [каталог]\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>errno.hE<gt>\n"
+"#include E<lt>poll.hE<gt>\n"
+"#include E<lt>stdio.hE<gt>\n"
+"#include E<lt>stdlib.hE<gt>\n"
+"#include E<lt>sys/inotify.hE<gt>\n"
+"#include E<lt>unistd.hE<gt>\n"
+"#include E<lt>string.hE<gt>\n"
+"\\&\n"
+"/* Read all available inotify events from the file descriptor \\[aq]fd\\[aq].\n"
+" wd is the table of watch descriptors for the directories in argv.\n"
+" argc is the length of wd and argv.\n"
+" argv is the list of watched directories.\n"
+" Entry 0 of wd and argv is unused. */\n"
+"\\&\n"
+"static void\n"
+"handle_events(int fd, int *wd, int argc, char* argv[])\n"
+"{\n"
+" /* Some systems cannot read integer variables if they are not\n"
+" properly aligned. On other systems, incorrect alignment may\n"
+" decrease performance. Hence, the buffer used for reading from\n"
+" the inotify file descriptor should have the same alignment as\n"
+" struct inotify_event. */\n"
+"\\&\n"
+" char buf[4096]\n"
+" __attribute__ ((aligned(__alignof__(struct inotify_event))));\n"
+" const struct inotify_event *event;\n"
+" ssize_t len;\n"
+"\\&\n"
+" /* Loop while events can be read from inotify file descriptor. */\n"
+"\\&\n"
+" for (;;) {\n"
+"\\&\n"
+" /* Read some events. */\n"
+"\\&\n"
+" len = read(fd, buf, sizeof(buf));\n"
+" if (len == -1 && errno != EAGAIN) {\n"
+" perror(\"read\");\n"
+" exit(EXIT_FAILURE);\n"
+" }\n"
+"\\&\n"
+" /* If the nonblocking read() found no events to read, then\n"
+" it returns -1 with errno set to EAGAIN. In that case,\n"
+" we exit the loop. */\n"
+"\\&\n"
+" if (len E<lt>= 0)\n"
+" break;\n"
+"\\&\n"
+" /* Loop over all events in the buffer. */\n"
+"\\&\n"
+" for (char *ptr = buf; ptr E<lt> buf + len;\n"
+" ptr += sizeof(struct inotify_event) + event-E<gt>len) {\n"
+"\\&\n"
+" event = (const struct inotify_event *) ptr;\n"
+"\\&\n"
+" /* Print event type. */\n"
+"\\&\n"
+" if (event-E<gt>mask & IN_OPEN)\n"
+" printf(\"IN_OPEN: \");\n"
+" if (event-E<gt>mask & IN_CLOSE_NOWRITE)\n"
+" printf(\"IN_CLOSE_NOWRITE: \");\n"
+" if (event-E<gt>mask & IN_CLOSE_WRITE)\n"
+" printf(\"IN_CLOSE_WRITE: \");\n"
+"\\&\n"
+" /* Print the name of the watched directory. */\n"
+"\\&\n"
+" for (size_t i = 1; i E<lt> argc; ++i) {\n"
+" if (wd[i] == event-E<gt>wd) {\n"
+" printf(\"%s/\", argv[i]);\n"
+" break;\n"
+" }\n"
+" }\n"
+"\\&\n"
+" /* Print the name of the file. */\n"
+"\\&\n"
+" if (event-E<gt>len)\n"
+" printf(\"%s\", event-E<gt>name);\n"
+"\\&\n"
+" /* Print type of filesystem object. */\n"
+"\\&\n"
+" if (event-E<gt>mask & IN_ISDIR)\n"
+" printf(\" [directory]\\en\");\n"
+" else\n"
+" printf(\" [file]\\en\");\n"
+" }\n"
+" }\n"
+"}\n"
+"\\&\n"
+"int\n"
+"main(int argc, char* argv[])\n"
+"{\n"
+" char buf;\n"
+" int fd, i, poll_num;\n"
+" int *wd;\n"
+" nfds_t nfds;\n"
+" struct pollfd fds[2];\n"
+"\\&\n"
+" if (argc E<lt> 2) {\n"
+" printf(\"Usage: %s PATH [PATH ...]\\en\", argv[0]);\n"
+" exit(EXIT_FAILURE);\n"
+" }\n"
+"\\&\n"
+" printf(\"Press ENTER key to terminate.\\en\");\n"
+"\\&\n"
+" /* Create the file descriptor for accessing the inotify API. */\n"
+"\\&\n"
+" fd = inotify_init1(IN_NONBLOCK);\n"
+" if (fd == -1) {\n"
+" perror(\"inotify_init1\");\n"
+" exit(EXIT_FAILURE);\n"
+" }\n"
+"\\&\n"
+" /* Allocate memory for watch descriptors. */\n"
+"\\&\n"
+" wd = calloc(argc, sizeof(int));\n"
+" if (wd == NULL) {\n"
+" perror(\"calloc\");\n"
+" exit(EXIT_FAILURE);\n"
+" }\n"
+"\\&\n"
+" /* Mark directories for events\n"
+" - file was opened\n"
+" - file was closed */\n"
+"\\&\n"
+" for (i = 1; i E<lt> argc; i++) {\n"
+" wd[i] = inotify_add_watch(fd, argv[i],\n"
+" IN_OPEN | IN_CLOSE);\n"
+" if (wd[i] == -1) {\n"
+" fprintf(stderr, \"Cannot watch \\[aq]%s\\[aq]: %s\\en\",\n"
+" argv[i], strerror(errno));\n"
+" exit(EXIT_FAILURE);\n"
+" }\n"
+" }\n"
+"\\&\n"
+" /* Prepare for polling. */\n"
+"\\&\n"
+" nfds = 2;\n"
+"\\&\n"
+" fds[0].fd = STDIN_FILENO; /* Console input */\n"
+" fds[0].events = POLLIN;\n"
+"\\&\n"
+" fds[1].fd = fd; /* Inotify input */\n"
+" fds[1].events = POLLIN;\n"
+"\\&\n"
+" /* Wait for events and/or terminal input. */\n"
+"\\&\n"
+" printf(\"Listening for events.\\en\");\n"
+" while (1) {\n"
+" poll_num = poll(fds, nfds, -1);\n"
+" if (poll_num == -1) {\n"
+" if (errno == EINTR)\n"
+" continue;\n"
+" perror(\"poll\");\n"
+" exit(EXIT_FAILURE);\n"
+" }\n"
+"\\&\n"
+" if (poll_num E<gt> 0) {\n"
+"\\&\n"
+" if (fds[0].revents & POLLIN) {\n"
+"\\&\n"
+" /* Console input is available. Empty stdin and quit. */\n"
+"\\&\n"
+" while (read(STDIN_FILENO, &buf, 1) E<gt> 0 && buf != \\[aq]\\en\\[aq])\n"
+" continue;\n"
+" break;\n"
+" }\n"
+"\\&\n"
+" if (fds[1].revents & POLLIN) {\n"
+"\\&\n"
+" /* Inotify events are available. */\n"
+"\\&\n"
+" handle_events(fd, wd, argc, argv);\n"
+" }\n"
+" }\n"
+" }\n"
+"\\&\n"
+" printf(\"Listening for events stopped.\\en\");\n"
+"\\&\n"
+" /* Close inotify file descriptor. */\n"
+"\\&\n"
+" close(fd);\n"
+"\\&\n"
+" free(wd);\n"
+" exit(EXIT_SUCCESS);\n"
+"}\n"
+msgstr ""
+
+#. 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<inotifywait>(1), B<inotifywatch>(1), B<inotify_add_watch>(2), "
+"B<inotify_init>(2), B<inotify_init1>(2), B<inotify_rm_watch>(2), B<read>(2), "
+"B<stat>(2), B<fanotify>(7)"
+msgstr ""
+"B<inotifywait>(1), B<inotifywatch>(1), B<inotify_add_watch>(2), "
+"B<inotify_init>(2), B<inotify_init1>(2), B<inotify_rm_watch>(2), B<read>(2), "
+"B<stat>(2), B<fanotify>(7)"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"I<Documentation/filesystems/inotify.txt> in the Linux kernel source tree"
+msgstr ""
+"Файл I<Documentation/filesystems/inotify.txt> в дереве исходного кода ядра "
+"Linux"
+
+#. type: TH
+#: debian-bookworm
+#, no-wrap
+msgid "2023-02-05"
+msgstr "5 февраля 2023 г."
+
+#. type: TH
+#: debian-bookworm
+#, no-wrap
+msgid "Linux man-pages 6.03"
+msgstr "Linux man-pages 6.03"
+
+#. type: Plain text
+#: debian-bookworm
+#, fuzzy
+#| msgid ""
+#| "The I<name> field is present only when an event is returned for a file "
+#| "inside a watched directory; it identifies the filename within to the "
+#| "watched directory. This filename is null-terminated, and may include "
+#| "further null bytes (\\(aq\\e0\\(aq) to align subsequent reads to a "
+#| "suitable address boundary."
+msgid ""
+"The I<name> field is present only when an event is returned for a file "
+"inside a watched directory; it identifies the filename within the watched "
+"directory. This filename is null-terminated, and may include further null "
+"bytes (\\[aq]\\e0\\[aq]) to align subsequent reads to a suitable address "
+"boundary."
+msgstr ""
+"Поле I<name> существует только когда событие возвращается для файла внутри "
+"отслеживаемого каталога; им определяется имя файла внутри отслеживаемого "
+"каталога. Это имя завершается null и может включать дополнительные байты "
+"null («\\e0») для выравнивания на подходящую границу адреса при последующих "
+"операций чтения."
+
+#. type: SH
+#: debian-bookworm
+#, no-wrap
+msgid "VERSIONS"
+msgstr "ВЕРСИИ"
+
+#. type: Plain text
+#: debian-bookworm
+msgid "The inotify API is Linux-specific."
+msgstr "Программный интерфейс inotify есть только в Linux."
+
+#. FIXME . https://bugzilla.kernel.org/show_bug.cgi?id=77111
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+msgid ""
+"When a watch descriptor is removed by calling B<inotify_rm_watch>(2) (or "
+"because a watch file is deleted or the filesystem that contains it is "
+"unmounted), any pending unread events for that watch descriptor remain "
+"available to read. As watch descriptors are subsequently allocated with "
+"B<inotify_add_watch>(2), the kernel cycles through the range of possible "
+"watch descriptors (0 to B<INT_MAX>) incrementally. When allocating a free "
+"watch descriptor, no check is made to see whether that watch descriptor "
+"number has any pending unread events in the inotify queue. Thus, it can "
+"happen that a watch descriptor is reallocated even when pending unread "
+"events exist for a previous incarnation of that watch descriptor number, "
+"with the result that the application might then read those events and "
+"interpret them as belonging to the file associated with the newly recycled "
+"watch descriptor. In practice, the likelihood of hitting this bug may be "
+"extremely low, since it requires that an application cycle through "
+"B<INT_MAX> watch descriptors, release a watch descriptor while leaving "
+"unread events for that watch descriptor in the queue, and then recycle that "
+"watch descriptor. For this reason, and because there have been no reports "
+"of the bug occurring in real-world applications, as of Linux 3.15, no kernel "
+"changes have yet been made to eliminate this possible bug."
+msgstr ""
+"Когда дескриптор сторожка удаляется вызовом B<inotify_rm_watch>(2) (или из-"
+"за удаления отслеживаемого файла, или размонтирования содержащей его "
+"файловой системы), все ожидающие непрочитанные события для этого дескриптора "
+"сторожка остаются доступными для чтения. Так как дескрипторы сторожков в "
+"дальнейшем циклически выделяются B<inotify_add_watch>(2), ядро поступательно "
+"проходит через диапазон возможных дескрипторов сторожков (от 0 до "
+"B<INT_MAX>). При выделении свободного дескриптора сторожка для выбранного "
+"номера не производится проверка того, есть ли какие-то ожидающие "
+"непрочитанные события в очереди inotify с таким номером или нет. То есть "
+"может случиться так, что дескриптор сторожка выделяется повторно даже когда "
+"существуют ожидающие непрочитанные события, оставшиеся от предыдущего "
+"выделения дескриптора сторожка с тем же номером; в результате приложение "
+"может прочесть эти события и посчитать их как принадлежащие файлу, "
+"связанному с новым повторно задействованным дескриптором сторожка. На "
+"практике, вероятность столкновения с этой ошибкой может быть чрезвычайно "
+"низка, так как для этого требуется, чтобы приложения циклически перебрало "
+"все B<INT_MAX> дескрипторов сторожков, освободило дескриптор сторожка и "
+"оставило непрочитанные события этого дескриптора сторожка в очереди, а затем "
+"повторно задействовало этот дескриптор сторожка. По этой причине и из-за "
+"того, что ещё никто не сообщал об этой ошибке в реальности, на момент "
+"актуальности Linux 3.15, в ядре ничего не было сделано для того, чтобы "
+"устранить этот дефект."
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid ""
+"$ B<./a.out /tmp /home/user/temp>\n"
+"Press enter key to terminate.\n"
+"Listening for events.\n"
+"IN_OPEN: /home/user/temp/foo [file]\n"
+"IN_CLOSE_WRITE: /home/user/temp/foo [file]\n"
+"IN_OPEN: /tmp/ [directory]\n"
+"IN_CLOSE_NOWRITE: /tmp/ [directory]\n"
+msgstr ""
+"$ B<./a.out /tmp /home/user/temp>\n"
+"Нажмите ENTER для завершения работы.\n"
+"Ожидание событий.\n"
+"IN_OPEN: /home/user/temp/foo [файл]\n"
+"IN_CLOSE_WRITE: /home/user/temp/foo [файл]\n"
+"IN_OPEN: /tmp/ [каталог]\n"
+"IN_CLOSE_NOWRITE: /tmp/ [каталог]\n"
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid "Listening for events stopped.\n"
+msgstr "Ожидание событий прекращено.\n"
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, fuzzy, no-wrap
+#| msgid ""
+#| "#include E<lt>errno.hE<gt>\n"
+#| "#include E<lt>poll.hE<gt>\n"
+#| "#include E<lt>stdio.hE<gt>\n"
+#| "#include E<lt>stdlib.hE<gt>\n"
+#| "#include E<lt>sys/inotify.hE<gt>\n"
+#| "#include E<lt>unistd.hE<gt>\n"
+msgid ""
+"#include E<lt>errno.hE<gt>\n"
+"#include E<lt>poll.hE<gt>\n"
+"#include E<lt>stdio.hE<gt>\n"
+"#include E<lt>stdlib.hE<gt>\n"
+"#include E<lt>sys/inotify.hE<gt>\n"
+"#include E<lt>unistd.hE<gt>\n"
+"#include E<lt>string.hE<gt>\n"
+msgstr ""
+"#include E<lt>errno.hE<gt>\n"
+"#include E<lt>poll.hE<gt>\n"
+"#include E<lt>stdio.hE<gt>\n"
+"#include E<lt>stdlib.hE<gt>\n"
+"#include E<lt>sys/inotify.hE<gt>\n"
+"#include E<lt>unistd.hE<gt>\n"
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, fuzzy, no-wrap
+#| msgid ""
+#| "/* Read all available inotify events from the file descriptor 'fd'.\n"
+#| " wd is the table of watch descriptors for the directories in argv.\n"
+#| " argc is the length of wd and argv.\n"
+#| " argv is the list of watched directories.\n"
+#| " Entry 0 of wd and argv is unused. */\n"
+msgid ""
+"/* Read all available inotify events from the file descriptor \\[aq]fd\\[aq].\n"
+" wd is the table of watch descriptors for the directories in argv.\n"
+" argc is the length of wd and argv.\n"
+" argv is the list of watched directories.\n"
+" Entry 0 of wd and argv is unused. */\n"
+msgstr ""
+"/* Читаем все доступные события из файлового дескриптора «fd».\n"
+" wd — таблица дескрипторов сторожков для каталогов из argv.\n"
+" argc — длина wd и argv.\n"
+" argv — список наблюдаемых каталогов.\n"
+" Элемент 0 в wd и argv не используется. */\n"
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid ""
+"static void\n"
+"handle_events(int fd, int *wd, int argc, char* argv[])\n"
+"{\n"
+" /* Some systems cannot read integer variables if they are not\n"
+" properly aligned. On other systems, incorrect alignment may\n"
+" decrease performance. Hence, the buffer used for reading from\n"
+" the inotify file descriptor should have the same alignment as\n"
+" struct inotify_event. */\n"
+msgstr ""
+"static void\n"
+"handle_events(int fd, int *wd, int argc, char* argv[])\n"
+"{\n"
+" /* В некоторых системах невозможно прочитать целые переменные, если\n"
+" они неправильно выровнены. В других системах некорректное\n"
+" выравнивание может снижать производительность. Таким образом, буфер,\n"
+" используемый для чтения из файлового дескриптора inotify, должен быть\n"
+" выровнен также как структура struct inotify_event. */\n"
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, fuzzy, no-wrap
+#| msgid ""
+#| " char buf[4096]\n"
+#| " __attribute__ ((aligned(__alignof__(struct inotify_event))));\n"
+#| " const struct inotify_event *event;\n"
+#| " int i;\n"
+#| " ssize_t len;\n"
+#| " char *ptr;\n"
+msgid ""
+" char buf[4096]\n"
+" __attribute__ ((aligned(__alignof__(struct inotify_event))));\n"
+" const struct inotify_event *event;\n"
+" ssize_t len;\n"
+msgstr ""
+" char buf[4096]\n"
+" __attribute__ ((aligned(__alignof__(struct inotify_event))));\n"
+" const struct inotify_event *event;\n"
+" int i;\n"
+" ssize_t len;\n"
+" char *ptr;\n"
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid " /* Loop while events can be read from inotify file descriptor. */\n"
+msgstr ""
+" /* проходим по всем событиям, которые можем прочитать\n"
+" из файлового дескриптора inotify */\n"
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid " for (;;) {\n"
+msgstr " for (;;) {\n"
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid " /* Read some events. */\n"
+msgstr " /* читаем несколько событий */\n"
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid ""
+" len = read(fd, buf, sizeof(buf));\n"
+" if (len == -1 && errno != EAGAIN) {\n"
+" perror(\"read\");\n"
+" exit(EXIT_FAILURE);\n"
+" }\n"
+msgstr ""
+" len = read(fd, buf, sizeof(buf));\n"
+" if (len == -1 && errno != EAGAIN) {\n"
+" perror(\"read\");\n"
+" exit(EXIT_FAILURE);\n"
+" }\n"
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid ""
+" /* If the nonblocking read() found no events to read, then\n"
+" it returns -1 with errno set to EAGAIN. In that case,\n"
+" we exit the loop. */\n"
+msgstr ""
+" /* Если неблокирующий read() не найдёт событий для чтения, то\n"
+" вернёт -1 с errno равным EAGAIN. В этом случае\n"
+" выходим из цикла. */\n"
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid ""
+" if (len E<lt>= 0)\n"
+" break;\n"
+msgstr ""
+" if (len E<lt>= 0)\n"
+" break;\n"
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid " /* Loop over all events in the buffer. */\n"
+msgstr " /* Проходим по всем событиям в буфере. */\n"
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, fuzzy, no-wrap
+#| msgid ""
+#| " for (ptr = buf; ptr E<lt> buf + len;\n"
+#| " ptr += sizeof(struct inotify_event) + event-E<gt>len) {\n"
+msgid ""
+" for (char *ptr = buf; ptr E<lt> buf + len;\n"
+" ptr += sizeof(struct inotify_event) + event-E<gt>len) {\n"
+msgstr ""
+" for (ptr = buf; ptr E<lt> buf + len;\n"
+" ptr += sizeof(struct inotify_event) + event-E<gt>len) {\n"
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid " event = (const struct inotify_event *) ptr;\n"
+msgstr " event = (const struct inotify_event *) ptr;\n"
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, fuzzy, no-wrap
+#| msgid " /* Print event type */\n"
+msgid " /* Print event type. */\n"
+msgstr " /* печатаем тип события */\n"
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid ""
+" if (event-E<gt>mask & IN_OPEN)\n"
+" printf(\"IN_OPEN: \");\n"
+" if (event-E<gt>mask & IN_CLOSE_NOWRITE)\n"
+" printf(\"IN_CLOSE_NOWRITE: \");\n"
+" if (event-E<gt>mask & IN_CLOSE_WRITE)\n"
+" printf(\"IN_CLOSE_WRITE: \");\n"
+msgstr ""
+" if (event-E<gt>mask & IN_OPEN)\n"
+" printf(\"IN_OPEN: \");\n"
+" if (event-E<gt>mask & IN_CLOSE_NOWRITE)\n"
+" printf(\"IN_CLOSE_NOWRITE: \");\n"
+" if (event-E<gt>mask & IN_CLOSE_WRITE)\n"
+" printf(\"IN_CLOSE_WRITE: \");\n"
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, fuzzy, no-wrap
+#| msgid " /* Print the name of the watched directory */\n"
+msgid " /* Print the name of the watched directory. */\n"
+msgstr " /* печатаем имя наблюдаемого каталога */\n"
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, fuzzy, no-wrap
+#| msgid ""
+#| " for (i = 1; i E<lt> argc; ++i) {\n"
+#| " if (wd[i] == event-E<gt>wd) {\n"
+#| " printf(\"%s/\", argv[i]);\n"
+#| " break;\n"
+#| " }\n"
+#| " }\n"
+msgid ""
+" for (size_t i = 1; i E<lt> argc; ++i) {\n"
+" if (wd[i] == event-E<gt>wd) {\n"
+" printf(\"%s/\", argv[i]);\n"
+" break;\n"
+" }\n"
+" }\n"
+msgstr ""
+" for (i = 1; i E<lt> argc; ++i) {\n"
+" if (wd[i] == event-E<gt>wd) {\n"
+" printf(\"%s/\", argv[i]);\n"
+" break;\n"
+" }\n"
+" }\n"
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, fuzzy, no-wrap
+#| msgid " /* Print the name of the file */\n"
+msgid " /* Print the name of the file. */\n"
+msgstr " /* печатаем имя файла */\n"
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid ""
+" if (event-E<gt>len)\n"
+" printf(\"%s\", event-E<gt>name);\n"
+msgstr ""
+" if (event-E<gt>len)\n"
+" printf(\"%s\", event-E<gt>name);\n"
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, fuzzy, no-wrap
+#| msgid " /* Print type of filesystem object */\n"
+msgid " /* Print type of filesystem object. */\n"
+msgstr " /* печатаем тип объекта файловой системы */\n"
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid ""
+" if (event-E<gt>mask & IN_ISDIR)\n"
+" printf(\" [directory]\\en\");\n"
+" else\n"
+" printf(\" [file]\\en\");\n"
+" }\n"
+" }\n"
+"}\n"
+msgstr ""
+" if (event-E<gt>mask & IN_ISDIR)\n"
+" printf(\" [каталог]\\en\");\n"
+" else\n"
+" printf(\" [файл]\\en\");\n"
+" }\n"
+" }\n"
+"}\n"
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid ""
+"int\n"
+"main(int argc, char* argv[])\n"
+"{\n"
+" char buf;\n"
+" int fd, i, poll_num;\n"
+" int *wd;\n"
+" nfds_t nfds;\n"
+" struct pollfd fds[2];\n"
+msgstr ""
+"int\n"
+"main(int argc, char* argv[])\n"
+"{\n"
+" char buf;\n"
+" int fd, i, poll_num;\n"
+" int *wd;\n"
+" nfds_t nfds;\n"
+" struct pollfd fds[2];\n"
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid ""
+" if (argc E<lt> 2) {\n"
+" printf(\"Usage: %s PATH [PATH ...]\\en\", argv[0]);\n"
+" exit(EXIT_FAILURE);\n"
+" }\n"
+msgstr ""
+" if (argc E<lt> 2) {\n"
+" printf(\"Использование: %s ПУТЬ [ПУТЬ …]\\en\", argv[0]);\n"
+" exit(EXIT_FAILURE);\n"
+" }\n"
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid " printf(\"Press ENTER key to terminate.\\en\");\n"
+msgstr " printf(\"Нажмите ENTER для завершения работы.\\en\");\n"
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, fuzzy, no-wrap
+#| msgid " /* Create the file descriptor for accessing the inotify API */\n"
+msgid " /* Create the file descriptor for accessing the inotify API. */\n"
+msgstr " /* Создаём файловый дескриптор для доступа к inotify API */\n"
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid ""
+" fd = inotify_init1(IN_NONBLOCK);\n"
+" if (fd == -1) {\n"
+" perror(\"inotify_init1\");\n"
+" exit(EXIT_FAILURE);\n"
+" }\n"
+msgstr ""
+" fd = inotify_init1(IN_NONBLOCK);\n"
+" if (fd == -1) {\n"
+" perror(\"inotify_init1\");\n"
+" exit(EXIT_FAILURE);\n"
+" }\n"
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, fuzzy, no-wrap
+#| msgid " /* Allocate memory for watch descriptors */\n"
+msgid " /* Allocate memory for watch descriptors. */\n"
+msgstr " /* выделяем память под дескрипторы сторожков */\n"
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid ""
+" wd = calloc(argc, sizeof(int));\n"
+" if (wd == NULL) {\n"
+" perror(\"calloc\");\n"
+" exit(EXIT_FAILURE);\n"
+" }\n"
+msgstr ""
+" wd = calloc(argc, sizeof(int));\n"
+" if (wd == NULL) {\n"
+" perror(\"calloc\");\n"
+" exit(EXIT_FAILURE);\n"
+" }\n"
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid ""
+" /* Mark directories for events\n"
+" - file was opened\n"
+" - file was closed */\n"
+msgstr ""
+" /* помечаем каталоги для событий\n"
+" - файл был открыт \n"
+" - файл был закрыт */\n"
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, fuzzy, no-wrap
+#| msgid ""
+#| " for (i = 1; i E<lt> argc; i++) {\n"
+#| " wd[i] = inotify_add_watch(fd, argv[i],\n"
+#| " IN_OPEN | IN_CLOSE);\n"
+#| " if (wd[i] == -1) {\n"
+#| " fprintf(stderr, \"Cannot watch '%s'\\en\", argv[i]);\n"
+#| " perror(\"inotify_add_watch\");\n"
+#| " exit(EXIT_FAILURE);\n"
+#| " }\n"
+#| " }\n"
+msgid ""
+" for (i = 1; i E<lt> argc; i++) {\n"
+" wd[i] = inotify_add_watch(fd, argv[i],\n"
+" IN_OPEN | IN_CLOSE);\n"
+" if (wd[i] == -1) {\n"
+" fprintf(stderr, \"Cannot watch \\[aq]%s\\[aq]: %s\\en\",\n"
+" argv[i], strerror(errno));\n"
+" exit(EXIT_FAILURE);\n"
+" }\n"
+" }\n"
+msgstr ""
+" for (i = 1; i E<lt> argc; i++) {\n"
+" wd[i] = inotify_add_watch(fd, argv[i],\n"
+" IN_OPEN | IN_CLOSE);\n"
+" if (wd[i] == -1) {\n"
+" fprintf(stderr, \"Невозможно пронаблюдать '%s'\\en\", argv[i]);\n"
+" perror(\"inotify_add_watch\");\n"
+" exit(EXIT_FAILURE);\n"
+" }\n"
+" }\n"
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid " /* Prepare for polling. */\n"
+msgstr " /* Подготовка к опросу. */\n"
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid " nfds = 2;\n"
+msgstr " nfds = 2;\n"
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, fuzzy, no-wrap
+#| msgid ""
+#| " fds[0].fd = STDIN_FILENO;\n"
+#| " fds[0].events = POLLIN;\n"
+msgid ""
+" fds[0].fd = STDIN_FILENO; /* Console input */\n"
+" fds[0].events = POLLIN;\n"
+msgstr ""
+" fds[0].fd = STDIN_FILENO;\n"
+" fds[0].events = POLLIN;\n"
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, fuzzy, no-wrap
+#| msgid ""
+#| " fds[1].fd = fd;\n"
+#| " fds[1].events = POLLIN;\n"
+msgid ""
+" fds[1].fd = fd; /* Inotify input */\n"
+" fds[1].events = POLLIN;\n"
+msgstr ""
+" fds[1].fd = fd;\n"
+" fds[1].events = POLLIN;\n"
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, fuzzy, no-wrap
+#| msgid " /* Wait for events and/or terminal input */\n"
+msgid " /* Wait for events and/or terminal input. */\n"
+msgstr " /* ждём события и/или ввода с терминала */\n"
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid ""
+" printf(\"Listening for events.\\en\");\n"
+" while (1) {\n"
+" poll_num = poll(fds, nfds, -1);\n"
+" if (poll_num == -1) {\n"
+" if (errno == EINTR)\n"
+" continue;\n"
+" perror(\"poll\");\n"
+" exit(EXIT_FAILURE);\n"
+" }\n"
+msgstr ""
+" printf(\"Ожидание событий.\\en\");\n"
+" while (1) {\n"
+" poll_num = poll(fds, nfds, -1);\n"
+" if (poll_num == -1) {\n"
+" if (errno == EINTR)\n"
+" continue;\n"
+" perror(\"poll\");\n"
+" exit(EXIT_FAILURE);\n"
+" }\n"
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid " if (poll_num E<gt> 0) {\n"
+msgstr " if (poll_num E<gt> 0) {\n"
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid " if (fds[0].revents & POLLIN) {\n"
+msgstr " if (fds[0].revents & POLLIN) {\n"
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, fuzzy, no-wrap
+#| msgid " /* Console input is available. Empty stdin and quit */\n"
+msgid " /* Console input is available. Empty stdin and quit. */\n"
+msgstr " /* доступен ввод с консоли: опустошаем stdin и выходим */\n"
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid ""
+" while (read(STDIN_FILENO, &buf, 1) E<gt> 0 && buf != \\[aq]\\en\\[aq])\n"
+" continue;\n"
+" break;\n"
+" }\n"
+msgstr ""
+" while (read(STDIN_FILENO, &buf, 1) E<gt> 0 && buf != \\[aq]\\en\\[aq])\n"
+" continue;\n"
+" break;\n"
+" }\n"
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid " if (fds[1].revents & POLLIN) {\n"
+msgstr " if (fds[1].revents & POLLIN) {\n"
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, fuzzy, no-wrap
+#| msgid " /* Inotify events are available */\n"
+msgid " /* Inotify events are available. */\n"
+msgstr " /* доступны события inotify */\n"
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid ""
+" handle_events(fd, wd, argc, argv);\n"
+" }\n"
+" }\n"
+" }\n"
+msgstr ""
+" handle_events(fd, wd, argc, argv);\n"
+" }\n"
+" }\n"
+" }\n"
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid " printf(\"Listening for events stopped.\\en\");\n"
+msgstr " printf(\"Ожидание событий прекращено.\\en\");\n"
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, fuzzy, no-wrap
+#| msgid " /* Close inotify file descriptor */\n"
+msgid " /* Close inotify file descriptor. */\n"
+msgstr " /* закрываем файловый дескриптор inotify */\n"
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid " close(fd);\n"
+msgstr " close(fd);\n"
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid ""
+" free(wd);\n"
+" exit(EXIT_SUCCESS);\n"
+"}\n"
+msgstr ""
+" free(wd);\n"
+" exit(EXIT_SUCCESS);\n"
+"}\n"
+
+#. type: TH
+#: debian-unstable opensuse-tumbleweed
+#, no-wrap
+msgid "2023-07-08"
+msgstr "8 июля 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"