diff options
Diffstat (limited to 'po/ru/man2/fcntl.2.po')
-rw-r--r-- | po/ru/man2/fcntl.2.po | 3618 |
1 files changed, 3618 insertions, 0 deletions
diff --git a/po/ru/man2/fcntl.2.po b/po/ru/man2/fcntl.2.po new file mode 100644 index 00000000..9cf5d012 --- /dev/null +++ b/po/ru/man2/fcntl.2.po @@ -0,0 +1,3618 @@ +# 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>, 2017. +# Dmitry Bolkhovskikh <d20052005@yandex.ru>, 2017. +# Yuri Kozlov <yuray@komyakino.ru>, 2011-2019. +# Иван Павлов <pavia00@gmail.com>, 2017. +msgid "" +msgstr "" +"Project-Id-Version: manpages-l10n\n" +"POT-Creation-Date: 2024-03-01 16:56+0100\n" +"PO-Revision-Date: 2019-09-27 19:31+0300\n" +"Last-Translator: Yuri Kozlov <yuray@komyakino.ru>\n" +"Language-Team: Russian <man-pages-ru-talks@lists.sourceforge.net>\n" +"Language: ru\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && " +"n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || " +"(n%100>=11 && n%100<=14)? 2 : 3);\n" +"X-Generator: Lokalize 2.0\n" + +#. type: TH +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "fcntl" +msgstr "fcntl" + +#. 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 "fcntl - manipulate file descriptor" +msgstr "fcntl - работа с файловым дескриптором" + +#. type: SH +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "LIBRARY" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "Standard C library (I<libc>, I<-lc>)" +msgstr "" + +#. type: SH +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "SYNOPSIS" +msgstr "СИНТАКСИС" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B<#include E<lt>fcntl.hE<gt>>\n" +msgstr "B<#include E<lt>fcntl.hE<gt>>\n" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B<int fcntl(int >I<fd>B<, int >I<cmd>B<, ... /* >I<arg>B< */ );>\n" +msgstr "B<int fcntl(int >I<fd>B<, int >I<cmd>B<, ... /* >I<arg>B< */ );>\n" + +#. type: SH +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "DESCRIPTION" +msgstr "ОПИСАНИЕ" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"B<fcntl>() performs one of the operations described below on the open file " +"descriptor I<fd>. The operation is determined by I<cmd>." +msgstr "" +"B<fcntl>() позволяет выполнять различные команды над открытым файловым " +"дескриптором I<fd>. Команда определяется содержимым аргумента I<cmd>." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"B<fcntl>() can take an optional third argument. Whether or not this " +"argument is required is determined by I<cmd>. The required argument type is " +"indicated in parentheses after each I<cmd> name (in most cases, the required " +"type is I<int>, and we identify the argument using the name I<arg>), or " +"I<void> is specified if the argument is not required." +msgstr "" +"B<fcntl>() может принимать необязательный третий аргумент. Необходимость его " +"указания зависит от значения, указанного в I<cmd>. Тип необходимого " +"аргумента указан в скобках после каждого имени значения I<cmd> (в " +"большинстве случаев требуется тип I<int>, и мы определяем аргумент с помощью " +"имени I<arg>), или указывается I<void>, если аргумент не нужен." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Certain of the operations below are supported only since a particular Linux " +"kernel version. The preferred method of checking whether the host kernel " +"supports a particular operation is to invoke B<fcntl>() with the desired " +"I<cmd> value and then test whether the call failed with B<EINVAL>, " +"indicating that the kernel does not recognize this value." +msgstr "" +"Некоторые операции, описанные далее, поддерживаются только начиная с " +"определённой версии ядра Linux. Корректным методом проверки доступности " +"операции в ядре является вызов B<fcntl>() с желаемой операцией в I<cmd> и " +"сравнение кода возврата вызов с B<EINVAL>, который указывает на " +"неподдерживаемость значения ядром." + +#. type: SS +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "Duplicating a file descriptor" +msgstr "Создание дубликата файлового дескриптора" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B<F_DUPFD> (I<int>)" +msgstr "B<F_DUPFD> (I<int>)" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Duplicate the file descriptor I<fd> using the lowest-numbered available file " +"descriptor greater than or equal to I<arg>. This is different from " +"B<dup2>(2), which uses exactly the file descriptor specified." +msgstr "" +"Создаёт копию файлового дескриптора I<fd>, используя и наименьший доступный " +"номер файлового дескриптора, который больше или равен I<arg>. Отличие от " +"B<dup2>(2) в том, что там файловый дескриптор задаётся явно." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "On success, the new file descriptor is returned." +msgstr "" +"При успешном выполнении этой команды, возвращается новый файловый дескриптор." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "See B<dup>(2) for further details." +msgstr "Дополнительную информацию смотрите в B<dup>(2)." + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B<F_DUPFD_CLOEXEC> (I<int>; since Linux 2.6.24)" +msgstr "B<F_DUPFD_CLOEXEC> (I<int>; начиная с Linux 2.6.24)" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"As for B<F_DUPFD>, but additionally set the close-on-exec flag for the " +"duplicate file descriptor. Specifying this flag permits a program to avoid " +"an additional B<fcntl>() B<F_SETFD> operation to set the B<FD_CLOEXEC> " +"flag. For an explanation of why this flag is useful, see the description of " +"B<O_CLOEXEC> in B<open>(2)." +msgstr "" +"Как B<F_DUPFD>, но на новом файловом дескрипторе дополнительно " +"устанавливается флаг закрытия-при-выполнении. Установка этого флага " +"позволяет программам не делать дополнительный вызов B<fcntl>() с командой " +"B<F_SETFD> для установки флага B<FD_CLOEXEC>. О том, зачем нужен этот флаг, " +"смотрите описание B<O_CLOEXEC> в B<open>(2)." + +#. type: SS +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "File descriptor flags" +msgstr "Флаги файлового дескриптора" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"The following commands manipulate the flags associated with a file " +"descriptor. Currently, only one such flag is defined: B<FD_CLOEXEC>, the " +"close-on-exec flag. If the B<FD_CLOEXEC> bit is set, the file descriptor " +"will automatically be closed during a successful B<execve>(2). (If the " +"B<execve>(2) fails, the file descriptor is left open.) If the " +"B<FD_CLOEXEC> bit is not set, the file descriptor will remain open across an " +"B<execve>(2)." +msgstr "" +"Следующие команды работают с флагами, связанными с файловым дескриптором. В " +"настоящее время определён только один флаг: B<FD_CLOEXEC>, флаг close-on-" +"exec. Если бит B<FD_CLOEXEC> равен 1, то файловый дескриптор будет " +"автоматически закрыт при успешном вызове B<execve>(2) (если B<execve>(2) " +"завершится с ошибкой, то файловый дескриптор останется открытым). Если бит " +"B<FD_CLOEXEC> равен 0, то файловый дескриптор останется открытым после " +"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<F_GETFD> (I<void>)" +msgstr "B<F_GETFD> (I<void>)" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Return (as the function result) the file descriptor flags; I<arg> is ignored." +msgstr "" +"Вернуть (как результат функции) флаги файлового дескриптора; значение I<arg> " +"игнорируется." + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B<F_SETFD> (I<int>)" +msgstr "B<F_SETFD> (I<int>)" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "Set the file descriptor flags to the value specified by I<arg>." +msgstr "" +"Установить флаги файлового дескриптора согласно значению, указанному в " +"аргументе I<arg>." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"In multithreaded programs, using B<fcntl>() B<F_SETFD> to set the close-on-" +"exec flag at the same time as another thread performs a B<fork>(2) plus " +"B<execve>(2) is vulnerable to a race condition that may unintentionally " +"leak the file descriptor to the program executed in the child process. See " +"the discussion of the B<O_CLOEXEC> flag in B<open>(2) for details and a " +"remedy to the problem." +msgstr "" +"В многонитевых программах использование B<fcntl>() с B<F_SETFD> для " +"установки флага close-on-exec в то время как другая нить выполняет " +"B<fork>(2) плюс B<execve>(2) приводит к состязательности, что может вызвать " +"передачу файлового дескриптора программе, запущенной в дочернем процессе. " +"Смотрите обсуждение флага B<O_CLOEXEC> в B<open>(2) и решение проблемы." + +#. type: SS +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "File status flags" +msgstr "Флаги состояния файла" + +#. or +#. .BR creat (2), +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Each open file description has certain associated status flags, initialized " +"by B<open>(2) and possibly modified by B<fcntl>(). Duplicated file " +"descriptors (made with B<dup>(2), B<fcntl>(F_DUPFD), B<fork>(2), etc.) refer " +"to the same open file description, and thus share the same file status flags." +msgstr "" +"Каждое описание открытого файла имеет несколько связанных с ним флагов " +"состояния, которые инициализируются вызовом B<open>(2) и, возможно, " +"изменяются затем вызовом B<fcntl>(). Эти флаги совместно используются " +"копиями файловых дескрипторов (сделанными с помощью B<dup>(2), " +"B<fcntl>(F_DUPFD), B<fork>(2) и т.д.), которые указывают на одно описание " +"открытого файла." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "The file status flags and their semantics are described in B<open>(2)." +msgstr "Эти флаги состояния и их смысл описаны в B<open>(2)." + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B<F_GETFL> (I<void>)" +msgstr "B<F_GETFL> (I<void>)" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Return (as the function result) the file access mode and the file status " +"flags; I<arg> is ignored." +msgstr "" +"Вернуть (как результат функции) режим доступа к файлу и флаги состояния " +"файла; значение I<arg> игнорируется." + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B<F_SETFL> (I<int>)" +msgstr "B<F_SETFL> (I<int>)" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Set the file status flags to the value specified by I<arg>. File access " +"mode (B<O_RDONLY>, B<O_WRONLY>, B<O_RDWR>) and file creation flags (i.e., " +"B<O_CREAT>, B<O_EXCL>, B<O_NOCTTY>, B<O_TRUNC>) in I<arg> are ignored. On " +"Linux, this command can change only the B<O_APPEND>, B<O_ASYNC>, " +"B<O_DIRECT>, B<O_NOATIME>, and B<O_NONBLOCK> flags. It is not possible to " +"change the B<O_DSYNC> and B<O_SYNC> flags; see BUGS, below." +msgstr "" +"Установить флаги состояния файла согласно значению, указанному в аргументе " +"I<arg>. Режим доступа к файлу (B<O_RDONLY>, B<O_WRONLY>, B<O_RDWR>) и флаги " +"создания файла (т. е., B<O_CREAT>, B<O_EXCL>, B<O_NOCTTY>, B<O_TRUNC>) в " +"I<arg> игнорируются. В Linux эта команда может изменять только флаги " +"B<O_APPEND>, B<O_ASYNC>, B<O_DIRECT>, B<O_NOATIME> и B<O_NONBLOCK>. " +"Невозможно изменить флаги B<O_DSYNC> и B<O_SYNC>; смотрите ДЕФЕКТЫ далее." + +#. type: SS +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "Advisory record locking" +msgstr "Консультативная (advisory) блокировка" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Linux implements traditional (\"process-associated\") UNIX record locks, as " +"standardized by POSIX. For a Linux-specific alternative with better " +"semantics, see the discussion of open file description locks below." +msgstr "" +"В Linux реализована обычная («попроцессная») блокировка UNIX, " +"стандартизованная POSIX. Описание Linux-альтернативную блокировку открытых " +"файловых описаний с лучшей семантикой смотрите далее." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"B<F_SETLK>, B<F_SETLKW>, and B<F_GETLK> are used to acquire, release, and " +"test for the existence of record locks (also known as byte-range, file-" +"segment, or file-region locks). The third argument, I<lock>, is a pointer " +"to a structure that has at least the following fields (in unspecified order)." +msgstr "" +"Команды B<F_SETLK>, B<F_SETLKW> и B<F_GETLK> используются для установки, " +"снятия и тестирования существования блокировок записей (также известных как " +"блокировки байтового диапазона, сегмента или области файла). Третий " +"аргумент, I<lock>, является указателем на структуру, которая имеет, по " +"крайней мере, следующие поля (в произвольном порядке):" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "" +"struct flock {\n" +" ...\n" +" short l_type; /* Type of lock: F_RDLCK,\n" +" F_WRLCK, F_UNLCK */\n" +" short l_whence; /* How to interpret l_start:\n" +" SEEK_SET, SEEK_CUR, SEEK_END */\n" +" off_t l_start; /* Starting offset for lock */\n" +" off_t l_len; /* Number of bytes to lock */\n" +" pid_t l_pid; /* PID of process blocking our lock\n" +" (set by F_GETLK and F_OFD_GETLK) */\n" +" ...\n" +"};\n" +msgstr "" +"struct flock {\n" +" ...\n" +" short l_type; /* Тип блокировки: F_RDLCK,\n" +" F_WRLCK, F_UNLCK */\n" +" short l_whence; /* Как интерпретировать l_start:\n" +" SEEK_SET, SEEK_CUR, SEEK_END */\n" +" off_t l_start; /* Начальное смещение блокировки */\n" +" off_t l_len; /* Количество блокируемых байт */\n" +" pid_t l_pid; /* PID процесса, блокирующего нашу блокировку\n" +" (только для F_GETLK и F_OFD_GETLK) */\n" +" ...\n" +"};\n" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"The I<l_whence>, I<l_start>, and I<l_len> fields of this structure specify " +"the range of bytes we wish to lock. Bytes past the end of the file may be " +"locked, but not bytes before the start of the file." +msgstr "" +"Поля I<l_whence>, I<l_start> и I<l_len> этой структуры задают диапазон байт, " +"который мы хотим заблокировать. Могут блокироваться байты за концом файла, " +"но не перед началом файла." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"I<l_start> is the starting offset for the lock, and is interpreted relative " +"to either: the start of the file (if I<l_whence> is B<SEEK_SET>); the " +"current file offset (if I<l_whence> is B<SEEK_CUR>); or the end of the file " +"(if I<l_whence> is B<SEEK_END>). In the final two cases, I<l_start> can be " +"a negative number provided the offset does not lie before the start of the " +"file." +msgstr "" +"I<l_start> \\(em это начальное смещение для блокировки, которое " +"интерпретируется как начало файла (если значение I<l_whence> равно " +"B<SEEK_SET>); как текущая позиция в файле (если значение I<l_whence> равно " +"B<SEEK_CUR>); как конец файла (если значение I<l_whence> равно B<SEEK_END>). " +"В последних двух случаях, I<l_start> может иметь отрицательное значение, " +"предоставляя смещение, которого не может указать до начала файла." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"I<l_len> specifies the number of bytes to be locked. If I<l_len> is " +"positive, then the range to be locked covers bytes I<l_start> up to and " +"including I<l_start>+I<l_len>-1. Specifying 0 for I<l_len> has the special " +"meaning: lock all bytes starting at the location specified by I<l_whence> " +"and I<l_start> through to the end of file, no matter how large the file " +"grows." +msgstr "" +"В I<l_len> задаётся количество байт, которые нужно заблокировать. Если " +"I<l_len> положительно, то диапазон блокировки начинается со I<l_start> и " +"кончается I<l_start>+I<l_len>-1 включительно. Если в I<l_len> указан 0, то " +"блокируются все байты начиная с места, указанного I<l_whence> и I<l_start> и " +"до конца файла, независимо от величины файла." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, fuzzy +#| msgid "" +#| "POSIX.1-2001 allows (but does not require) an implementation to support " +#| "a negative I<l_len> value; if I<l_len> is negative, the interval " +#| "described by I<lock> covers bytes I<l_start>+I<l_len> up to and including " +#| "I<l_start>-1. This is supported by Linux since kernel versions 2.4.21 " +#| "and 2.5.49." +msgid "" +"POSIX.1-2001 allows (but does not require) an implementation to support a " +"negative I<l_len> value; if I<l_len> is negative, the interval described by " +"I<lock> covers bytes I<l_start>+I<l_len> up to and including I<l_start>-1. " +"This is supported since Linux 2.4.21 and Linux 2.5.49." +msgstr "" +"POSIX.1-2001 позволяет (но не требует) реализации поддерживать отрицательное " +"значение I<l_len>; если I<l_len> отрицательно, то интервал, описываемый " +"I<lock>, имеет размер I<l_start>+I<l_len> до I<l_start>-1 включительно. Это " +"поддерживается в Linux начиная с ядер версии 2.4.21 и 2.5.49." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"The I<l_type> field can be used to place a read (B<F_RDLCK>) or a write " +"(B<F_WRLCK>) lock on a file. Any number of processes may hold a read lock " +"(shared lock) on a file region, but only one process may hold a write lock " +"(exclusive lock). An exclusive lock excludes all other locks, both shared " +"and exclusive. A single process can hold only one type of lock on a file " +"region; if a new lock is applied to an already-locked region, then the " +"existing lock is converted to the new lock type. (Such conversions may " +"involve splitting, shrinking, or coalescing with an existing lock if the " +"byte range specified by the new lock does not precisely coincide with the " +"range of the existing lock.)" +msgstr "" +"Поле I<l_type> может быть использовано для указания типа блокировки файла: " +"чтение (B<F_RDLCK>) или запись (B<F_WRLCK>). Любое количество процессов " +"могут удерживать блокировку на чтение (общая блокировка) области файла, но " +"только один процесс может удерживать блокировку на запись (эксклюзивная " +"блокировка). Эксклюзивная блокировка исключает все другие блокировки, как " +"общие так и эксклюзивные. Один процесс может удерживать только один тип " +"блокировки области файла; если происходит новая блокировка уже " +"заблокированной области, то существующая блокировка преобразуется в новый " +"тип блокировки. (Такие преобразования могут привести к разбиению, уменьшению " +"или срастанию с существующей блокировкой, если диапазон байт, заданный для " +"новой блокировки, неточно совпадает с диапазоном существующей блокировки.)" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B<F_SETLK> (I<struct flock *>)" +msgstr "B<F_SETLK> (I<struct flock *>)" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Acquire a lock (when I<l_type> is B<F_RDLCK> or B<F_WRLCK>) or release a " +"lock (when I<l_type> is B<F_UNLCK>) on the bytes specified by the " +"I<l_whence>, I<l_start>, and I<l_len> fields of I<lock>. If a conflicting " +"lock is held by another process, this call returns -1 and sets I<errno> to " +"B<EACCES> or B<EAGAIN>. (The error returned in this case differs across " +"implementations, so POSIX requires a portable application to check for both " +"errors.)" +msgstr "" +"Установить блокировку (когда I<l_type> равен B<F_RDLCK> или B<F_WRLCK>) или " +"снять блокировку (когда I<l_type> равен B<F_UNLCK>) байтов, указанных " +"полями I<l_whence>, I<l_start> и I<l_len> структуры I<lock>. Если " +"конфликтующая блокировка удерживается другим процессом, то данный вызов " +"вернёт -1 и установит значение I<errno> в B<EACCES> или B<EAGAIN> (ошибка, " +"возвращаемая в этом случае, в разных реализациях разная, поэтому в POSIX для " +"переносимых приложений требуется проверять оба значения)." + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B<F_SETLKW> (I<struct flock *>)" +msgstr "B<F_SETLKW> (I<struct flock *>)" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"As for B<F_SETLK>, but if a conflicting lock is held on the file, then wait " +"for that lock to be released. If a signal is caught while waiting, then the " +"call is interrupted and (after the signal handler has returned) returns " +"immediately (with return value -1 and I<errno> set to B<EINTR>; see " +"B<signal>(7))." +msgstr "" +"Как B<F_SETLK>, но если конфликтующая блокировка удерживается на файле, то " +"выполняется ожидание снятия этой блокировки. Если во время ожидания поступил " +"сигнал, то данный вызов прерывается и (после возврата из обработчика " +"сигнала) из него происходит немедленный возврат (возвращается значение -1 и " +"I<errno> устанавливается в B<EINTR>; см. B<signal>(7))." + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B<F_GETLK> (I<struct flock *>)" +msgstr "B<F_GETLK> (I<struct flock *>)" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"On input to this call, I<lock> describes a lock we would like to place on " +"the file. If the lock could be placed, B<fcntl>() does not actually place " +"it, but returns B<F_UNLCK> in the I<l_type> field of I<lock> and leaves the " +"other fields of the structure unchanged." +msgstr "" +"При входе в этот вызов, I<lock> описывает блокировку, которую мы хотели бы " +"установить на файл. Если такая блокировка не может быть установлена, " +"B<fcntl>() не устанавливает её, но возвращает B<F_UNLCK> в поле I<l_type> " +"структуры I<lock> и оставляет другие поля структуры неизменёнными." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"If one or more incompatible locks would prevent this lock being placed, then " +"B<fcntl>() returns details about one of those locks in the I<l_type>, " +"I<l_whence>, I<l_start>, and I<l_len> fields of I<lock>. If the conflicting " +"lock is a traditional (process-associated) record lock, then the I<l_pid> " +"field is set to the PID of the process holding that lock. If the " +"conflicting lock is an open file description lock, then I<l_pid> is set to " +"-1. Note that the returned information may already be out of date by the " +"time the caller inspects it." +msgstr "" +"Если одна или более несовместимых блокировок мешают установке этой " +"блокировки, то B<fcntl>() возвращает подробности об одной из этих блокировок " +"в полях I<l_type>, I<l_whence>, I<l_start> и I<l_len> структуры I<lock>. " +"Если конфликтующая блокировка является обычной (попроцессной), то в I<l_pid> " +"записывается значение PID того процесса, который удерживает блокировку. Если " +"конфликтующая блокировка является блокировку открытого файлового описания, в " +"I<l_pid> записывается -1. Заметим, что возвращаемая информация может уже " +"устареть в момент проверки вызывающим." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"In order to place a read lock, I<fd> must be open for reading. In order to " +"place a write lock, I<fd> must be open for writing. To place both types of " +"lock, open a file read-write." +msgstr "" +"Для того, чтобы установить блокировку на чтение, I<fd> должен быть открыт на " +"чтение. Для того, чтобы установить блокировку на запись, I<fd> должен быть " +"открыт на запись. Чтобы установить оба типа блокировки, дескриптор должен " +"быть открыт на запись и на чтение." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"When placing locks with B<F_SETLKW>, the kernel detects I<deadlocks>, " +"whereby two or more processes have their lock requests mutually blocked by " +"locks held by the other processes. For example, suppose process A holds a " +"write lock on byte 100 of a file, and process B holds a write lock on byte " +"200. If each process then attempts to lock the byte already locked by the " +"other process using B<F_SETLKW>, then, without deadlock detection, both " +"processes would remain blocked indefinitely. When the kernel detects such " +"deadlocks, it causes one of the blocking lock requests to immediately fail " +"with the error B<EDEADLK>; an application that encounters such an error " +"should release some of its locks to allow other applications to proceed " +"before attempting regain the locks that it requires. Circular deadlocks " +"involving more than two processes are also detected. Note, however, that " +"there are limitations to the kernel's deadlock-detection algorithm; see BUGS." +msgstr "" +"При размещении блокировок с помощью B<F_SETLKW>, ядро обнаруживает " +"I<взаимные блокировки> (deadlocks), при которых два и более процессов " +"создают запросы на блокировку, блокируемые блокировками, удерживаемые " +"другими процессами. Например, предположим, что процесс А удерживает " +"блокировку на запись файла в байт 100, а процесс Б удерживает блокировку на " +"запись в байт 200. Если каждый процесс затем попытается заблокировать байт, " +"который уже заблокирован другим процессом с помощью B<F_SETLKW>, то без " +"обнаружения взаимных блокировок оба процесса останутся заблокированными " +"навсегда. Когда ядро обнаруживает такие взаимные блокировки оно сразу же " +"завершает одну из блокирующих блокировок с ошибкой B<EDEADLK>; приложение, " +"встретившее такую ошибку, должно освободить одну из своих блокировок перед " +"попыткой восстановить блокировки, которые ему нужны, позволив другому " +"приложению продолжить работу. Зацикленные взаимные блокировки обнаруживаются " +"и для более двух процессов. Однако заметим, что есть ограничения в алгоритме " +"обнаружения взаимных блокировок; смотрите ДЕФЕКТЫ." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"As well as being removed by an explicit B<F_UNLCK>, record locks are " +"automatically released when the process terminates." +msgstr "" +"Также как и при снятии блокировки через явное указание B<F_UNLCK>, " +"блокировка автоматически снимается, когда процесс завершается." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Record locks are not inherited by a child created via B<fork>(2), but are " +"preserved across an B<execve>(2)." +msgstr "" +"Блокировки не наследуются потомком, созданным через B<fork>(2), но " +"сохраняются при вызове B<execve>(2)." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Because of the buffering performed by the B<stdio>(3) library, the use of " +"record locking with routines in that package should be avoided; use " +"B<read>(2) and B<write>(2) instead." +msgstr "" +"Поскольку буферизация выполняется через библиотеку B<stdio>(3), " +"использование блокировок с функциями в этом пакете нужно избегать; вместо " +"этих функций используйте B<read>(2) и B<write>(2)." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"The record locks described above are associated with the process (unlike the " +"open file description locks described below). This has some unfortunate " +"consequences:" +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]" + +#. (Additional file descriptors referring to the same file +#. may have been obtained by calls to +#. .BR open "(2), " dup "(2), " dup2 "(2), or " fcntl ().) +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"If a process closes I<any> file descriptor referring to a file, then all of " +"the process's locks on that file are released, regardless of the file " +"descriptor(s) on which the locks were obtained. This is bad: it means that " +"a process can lose its locks on a file such as I</etc/passwd> or I</etc/" +"mtab> when for some reason a library function decides to open, read, and " +"close the same file." +msgstr "" +"Если процесс закрывает I<любой> файловый дескриптор, ссылающийся на файл, то " +"освобождаются все блокировки процесса для этого файла, независимо от " +"файлового дескриптора(ов), на который получена блокировка. Это плохо: это " +"означает, что процесс может потерять свои блокировки на файл, такой как I</" +"etc/passwd> или I</etc/mtab>, когда какой-либо причине библиотечная функция " +"решает их открыть, прочитать и закрыть." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"The threads in a process share locks. In other words, a multithreaded " +"program can't use record locking to ensure that threads don't simultaneously " +"access the same region of a file." +msgstr "" +"Нити процесса совместно используют блокировки процесса. Другими словами " +"многонитевая программа не может использовать блокировку для разграничения " +"доступа к одной области файла среди нитей." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "Open file description locks solve both of these problems." +msgstr "Блокировки открытых файловых описаний решают обе эти проблемы." + +#. type: SS +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "Open file description locks (non-POSIX)" +msgstr "Блокировки открытых файловых описаний (не POSIX)" + +#. FIXME . Review progress into POSIX +#. http://austingroupbugs.net/view.php?id=768 +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Open file description locks are advisory byte-range locks whose operation is " +"in most respects identical to the traditional record locks described above. " +"This lock type is Linux-specific, and available since Linux 3.15. (There is " +"a proposal with the Austin Group to include this lock type in the next " +"revision of POSIX.1.) For an explanation of open file descriptions, see " +"B<open>(2)." +msgstr "" +"Блокировки открытых файловых описаний являются консультативными блокировками " +"диапазона байт, чьё действие почти идентично обычным блокировкам, описанным " +"выше. Данный тип блокировок есть только в Linux и доступен с версии 3.15 " +"(есть предложение в Austin Group включить данный тип блокировки в следующую " +"версию POSIX.1). Описание открытых файловых описаний смотрите в B<open>(2)." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"The principal difference between the two lock types is that whereas " +"traditional record locks are associated with a process, open file " +"description locks are associated with the open file description on which " +"they are acquired, much like locks acquired with B<flock>(2). Consequently " +"(and unlike traditional advisory record locks), open file description locks " +"are inherited across B<fork>(2) (and B<clone>(2) with B<CLONE_FILES>), and " +"are only automatically released on the last close of the open file " +"description, instead of being released on any close of the file." +msgstr "" +"Принципиальное различие между двумя типами блокировок в том, что обычные " +"блокировки связаны с процессом, а блокировки открытых файловых описаний " +"связаны с открытым файловым описанием, для которого они получены (очень " +"похоже на блокировки, получаемые с помощью B<flock>(2). В следствие этого (и " +"в отличие от обычных консультативных блокировок), блокировки открытых " +"файловых описаний наследуются при B<fork>(2) (и при B<clone>(2) с " +"B<CLONE_FILES>), и освобождаются только автоматически при последнем закрытии " +"открытого файлового описания, а не при любом закрытии файла." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Conflicting lock combinations (i.e., a read lock and a write lock or two " +"write locks) where one lock is an open file description lock and the other " +"is a traditional record lock conflict even when they are acquired by the " +"same process on the same file descriptor." +msgstr "" +"Конфликт комбинаций блокировок (блокировка чтения и блокировка записи или " +"две блокировки записи), при котором одна блокировка — открытое файловое " +"описание, а другая — обычная блокировка, конфликтуют даже когда они " +"запрашиваются одним процессом для одного и того же файлового дескриптора." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Open file description locks placed via the same open file description (i.e., " +"via the same file descriptor, or via a duplicate of the file descriptor " +"created by B<fork>(2), B<dup>(2), B<fcntl>() B<F_DUPFD>, and so on) are " +"always compatible: if a new lock is placed on an already locked region, then " +"the existing lock is converted to the new lock type. (Such conversions may " +"result in splitting, shrinking, or coalescing with an existing lock as " +"discussed above.)" +msgstr "" +"Блокировки открытых файловых описаний, полученные для одного и того же " +"файлового описания (т. е., для одного и того же файлового дескриптора или " +"его копии, созданной в результате B<fork>(2), B<dup>(2), B<fcntl>() " +"B<F_DUPFD> и т. п.), всегда совместимы: если новая блокировка помещается на " +"уже заблокированную область, то существующая блокировка преобразуется в " +"блокировку нового типа (такие преобразования могут приводить к разделению, " +"сокращению или объединению существующей блокировки, как описывалось ранее)." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"On the other hand, open file description locks may conflict with each other " +"when they are acquired via different open file descriptions. Thus, the " +"threads in a multithreaded program can use open file description locks to " +"synchronize access to a file region by having each thread perform its own " +"B<open>(2) on the file and applying locks via the resulting file descriptor." +msgstr "" +"С другой стороны, блокировки открытых файловых описаний могут конфликтовать " +"друг с другом, когда они запрашиваются через разные открытые файловые " +"описания. То есть, нити в многонитевых программах могут использовать " +"блокировки открытых файловых описаний для синхронизации доступа к области " +"файла, если каждая нить выполняет отдельный вызов B<open>(2) на файл и " +"применяет блокировки для получаемого файлового дескриптора." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"As with traditional advisory locks, the third argument to B<fcntl>(), " +"I<lock>, is a pointer to an I<flock> structure. By contrast with " +"traditional record locks, the I<l_pid> field of that structure must be set " +"to zero when using the commands described below." +msgstr "" +"Как и у обычных блокировок, третий аргумент B<fcntl>(), I<lock>, является " +"указателем на структуру I<flock>. Но в отличие от обычных блокировок при " +"использовании команд, описанных далее, поле I<l_pid> этой структуры должно " +"иметь значение 0." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"The commands for working with open file description locks are analogous to " +"those used with traditional locks:" +msgstr "" +"Команды для работы с блокировками открытых файловых описаний аналогичны " +"используемым для обычных блокировок:" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B<F_OFD_SETLK> (I<struct flock *>)" +msgstr "B<F_OFD_SETLK> (I<struct flock *>)" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Acquire an open file description lock (when I<l_type> is B<F_RDLCK> or " +"B<F_WRLCK>) or release an open file description lock (when I<l_type> is " +"B<F_UNLCK>) on the bytes specified by the I<l_whence>, I<l_start>, and " +"I<l_len> fields of I<lock>. If a conflicting lock is held by another " +"process, this call returns -1 and sets I<errno> to B<EAGAIN>." +msgstr "" +"Установить блокировку открытого файлового описания (когда I<l_type> равен " +"B<F_RDLCK> или B<F_WRLCK>) или снять блокировку открытого файлового описания " +"(когда I<l_type> равен B<F_UNLCK>) байтов, указанных полями I<l_whence>, " +"I<l_start> и I<l_len> структуры I<lock>. Если конфликтующая блокировка " +"удерживается другим процессом, то данный вызов вернёт -1 и установит " +"значение I<errno> в B<EAGAIN>." + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B<F_OFD_SETLKW> (I<struct flock *>)" +msgstr "B<F_OFD_SETLKW> (I<struct flock *>)" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"As for B<F_OFD_SETLK>, but if a conflicting lock is held on the file, then " +"wait for that lock to be released. If a signal is caught while waiting, " +"then the call is interrupted and (after the signal handler has returned) " +"returns immediately (with return value -1 and I<errno> set to B<EINTR>; see " +"B<signal>(7))." +msgstr "" +"Как B<F_OFD_SETLK>, но если конфликтующая блокировка удерживается на файле, " +"то выполняется ожидание снятия этой блокировки. Если во время ожидания " +"поступил сигнал, то данный вызов прерывается и (после возврата из " +"обработчика сигнала) из него происходит немедленный возврат (возвращается " +"значение -1 и I<errno> устанавливается в B<EINTR>; см. B<signal>(7))." + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B<F_OFD_GETLK> (I<struct flock *>)" +msgstr "B<F_OFD_GETLK> (I<struct flock *>)" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"On input to this call, I<lock> describes an open file description lock we " +"would like to place on the file. If the lock could be placed, B<fcntl>() " +"does not actually place it, but returns B<F_UNLCK> in the I<l_type> field of " +"I<lock> and leaves the other fields of the structure unchanged. If one or " +"more incompatible locks would prevent this lock being placed, then details " +"about one of these locks are returned via I<lock>, as described above for " +"B<F_GETLK>." +msgstr "" +"В начала данного вызова значение I<lock> описывает блокировку открытого " +"файлового описания, которую мы бы хотели создать на файле. Если блокировка " +"возможна, то в действительности B<fcntl>() её не создаёт, а возвращает " +"B<F_UNLCK> в поле I<l_type> у I<lock>, оставляя остальные поля неизменными. " +"Если есть одна или более несовместимых блокировок, препятствующих получению, " +"то в I<lock> возвращается подробная информация об этих блокировках, как " +"описывалось выше для B<F_GETLK>." + +#. commit 57b65325fe34ec4c917bc4e555144b4a94d9e1f7 +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"In the current implementation, no deadlock detection is performed for open " +"file description locks. (This contrasts with process-associated record " +"locks, for which the kernel does perform deadlock detection.)" +msgstr "" +"В текущей реализации для блокировок открытых файловых описаний обнаружение " +"взаимных блокировок не выполняется (в этом отличие от попроцессных " +"блокировок, для которых ядро выполняет обнаружение взаимных блокировок)." + +#. type: SS +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "Mandatory locking" +msgstr "Обязательная (mandatory) блокировка" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, fuzzy +#| msgid "" +#| "I<Warning>: the Linux implementation of mandatory locking is unreliable. " +#| "See BUGS below. Because of these bugs, and the fact that the feature is " +#| "believed to be little used, since Linux 4.5, mandatory locking has been " +#| "made an optional feature, governed by a configuration option " +#| "(B<CONFIG_MANDATORY_FILE_LOCKING>). This is an initial step toward " +#| "removing this feature completely." +msgid "" +"I<Warning>: the Linux implementation of mandatory locking is unreliable. " +"See BUGS below. Because of these bugs, and the fact that the feature is " +"believed to be little used, since Linux 4.5, mandatory locking has been made " +"an optional feature, governed by a configuration option " +"(B<CONFIG_MANDATORY_FILE_LOCKING>). This feature is no longer supported at " +"all in Linux 5.15 and above." +msgstr "" +"I<Предупреждение>: реализация Linux обязательного блокирования ненадёжна. " +"Смотрите раздел ДЕФЕКТЫ далее. Из-за этих дефектов и того факта, что это " +"свойство, вероятно, мало где будет использоваться, начиная с Linux 4.5 " +"обязательная блокировка был сделана необязательной, и включается параметром " +"настройки (B<CONFIG_MANDATORY_FILE_LOCKING>). Это первый шаг последующего " +"полного удаления данного свойства." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"By default, both traditional (process-associated) and open file description " +"record locks are advisory. Advisory locks are not enforced and are useful " +"only between cooperating processes." +msgstr "" +"По умолчанию, обычные (связанные с процессом) блокировки и блокировки " +"открытого файлового описания являются консультативными. Консультативные " +"блокировки не обязательны к выполнению и полезны только в сотрудничающих " +"процессах." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Both lock types can also be mandatory. Mandatory locks are enforced for all " +"processes. If a process tries to perform an incompatible access (e.g., " +"B<read>(2) or B<write>(2)) on a file region that has an incompatible " +"mandatory lock, then the result depends upon whether the B<O_NONBLOCK> flag " +"is enabled for its open file description. If the B<O_NONBLOCK> flag is not " +"enabled, then the system call is blocked until the lock is removed or " +"converted to a mode that is compatible with the access. If the " +"B<O_NONBLOCK> flag is enabled, then the system call fails with the error " +"B<EAGAIN>." +msgstr "" +"Оба типа блокировки могут быть также обязательными. Если процесс пытается " +"получить несовместимый доступ (например, B<read>(2) и B<write>(2)) к области " +"файла, на которую установлена несовместимая обязательная блокировка, то " +"результат зависит от состояния флага B<O_NONBLOCK> в описании этого " +"открытого файла. Если флаг B<O_NONBLOCK> не установлен, то системный вызов " +"блокируется до удаления блокировки или преобразуется в режим, который " +"совместим с доступом. Если флаг B<O_NONBLOCK> установлен, то системный вызов " +"завершается с ошибкой B<EAGAIN>." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"To make use of mandatory locks, mandatory locking must be enabled both on " +"the filesystem that contains the file to be locked, and on the file itself. " +"Mandatory locking is enabled on a filesystem using the \"-o mand\" option to " +"B<mount>(8), or the B<MS_MANDLOCK> flag for B<mount>(2). Mandatory locking " +"is enabled on a file by disabling group execute permission on the file and " +"enabling the set-group-ID permission bit (see B<chmod>(1) and B<chmod>(2))." +msgstr "" +"Чтобы использовать обязательные блокировки, обязательное блокирование должно " +"быть включено в файловой системе, содержащей файл, и на самом файле. " +"Обязательное блокирование включается в файловой системе с помощью параметра " +"«-o mand» команды B<mount>(8) или с помощью флага B<MS_MANDLOCK> в " +"B<mount>(2). Обязательное блокирование включается на файле посредством " +"отключения права исполнения группе и установкой бита set-group-ID (см. " +"B<chmod>(1) и B<chmod>(2))." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Mandatory locking is not specified by POSIX. Some other systems also " +"support mandatory locking, although the details of how to enable it vary " +"across systems." +msgstr "" +"Обязательная блокировка не описана в POSIX. В некоторых других системах " +"обязательная блокировка также поддерживается, хотя процесс её создания " +"различен." + +#. type: SS +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "Lost locks" +msgstr "Потерянные блокировки" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"When an advisory lock is obtained on a networked filesystem such as NFS it " +"is possible that the lock might get lost. This may happen due to " +"administrative action on the server, or due to a network partition (i.e., " +"loss of network connectivity with the server) which lasts long enough for " +"the server to assume that the client is no longer functioning." +msgstr "" +"При получении консультативной блокировки на сетевой файловой системе, " +"например NFS, возможна её потеря. Это может случиться из-за " +"административного действия или сетевой проблемы (т. е., потеря связи с " +"сервером), которая длится достаточно долго для того, чтобы сервер посчитал " +"клиента за неработающего." + +#. commit ef1820f9be27b6ad158f433ab38002ab8131db4d +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"When the filesystem determines that a lock has been lost, future B<read>(2) " +"or B<write>(2) requests may fail with the error B<EIO>. This error will " +"persist until the lock is removed or the file descriptor is closed. Since " +"Linux 3.12, this happens at least for NFSv4 (including all minor versions)." +msgstr "" +"Когда файловая система определяет, что блокировка потеряна, последующие " +"запросы B<read>(2) или B<write>(2) могут завершиться ошибкой B<EIO>. Эта " +"ошибка будет повторяться до тех пор, пока блокировка не удалится или не " +"закроется файловый дескриптор. Начиная с Linux 3.12, так работает, по " +"крайней мере, NFSv4 (включая все предыдущие версии)." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Some versions of UNIX send a signal (B<SIGLOST>) in this circumstance. " +"Linux does not define this signal, and does not provide any asynchronous " +"notification of lost locks." +msgstr "" +"Некоторые версии UNIX при таких обстоятельствах посылают сигнал " +"(B<SIGLOST>). В Linux такой сигнал не определён и не существует какого-либо " +"асинхронного уведомления о потере блокировки." + +#. type: SS +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "Managing signals" +msgstr "Управление сигналами" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"B<F_GETOWN>, B<F_SETOWN>, B<F_GETOWN_EX>, B<F_SETOWN_EX>, B<F_GETSIG>, and " +"B<F_SETSIG> are used to manage I/O availability signals:" +msgstr "" +"Для управления сигналами доступности ввода/вывода используются команды " +"B<F_GETOWN>, B<F_SETOWN>, B<F_GETOWN_EX>, B<F_SETOWN_EX>, B<F_GETSIG> и " +"B<F_SETSIG>:" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B<F_GETOWN> (I<void>)" +msgstr "B<F_GETOWN> (I<void>)" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, fuzzy +#| msgid "" +#| "Return (as the function result) the process ID or process group " +#| "currently receiving B<SIGIO> and B<SIGURG> signals for events on file " +#| "descriptor I<fd>. Process IDs are returned as positive values; process " +#| "group IDs are returned as negative values (but see BUGS below). I<arg> " +#| "is ignored." +msgid "" +"Return (as the function result) the process ID or process group ID " +"currently receiving B<SIGIO> and B<SIGURG> signals for events on file " +"descriptor I<fd>. Process IDs are returned as positive values; process " +"group IDs are returned as negative values (but see BUGS below). I<arg> is " +"ignored." +msgstr "" +"Получить (как результат работы функции) идентификатор процесса или группы " +"процесса, который в текущий момент принимает сигналы B<SIGIO> и B<SIGURG> " +"для событий на файловом дескрипторе I<fd>. Идентификатор процесса " +"возвращается как положительное число; идентификатор группы возвращается как " +"отрицательное число (но см. раздел ДЕФЕКТЫ далее). Аргумент I<arg> " +"игнорируется." + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B<F_SETOWN> (I<int>)" +msgstr "B<F_SETOWN> (I<int>)" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Set the process ID or process group ID that will receive B<SIGIO> and " +"B<SIGURG> signals for events on the file descriptor I<fd>. The target " +"process or process group ID is specified in I<arg>. A process ID is " +"specified as a positive value; a process group ID is specified as a negative " +"value. Most commonly, the calling process specifies itself as the owner " +"(that is, I<arg> is specified as B<getpid>(2))." +msgstr "" +"Установить идентификатор процесса или группы процесса, которые будут " +"принимать сигналы B<SIGIO> и B<SIGURG> для событий на файловом дескрипторе " +"I<fd>. Идентификатор целевого процесса или группы процессов задаётся в " +"аргументе I<arg>. Идентификатор процесса задаётся положительным числом, " +"идентификатор группы задаётся отрицательным числом. Обычно, вызывающий " +"процесс указывает самого себя в качестве владельца (то есть в I<arg> " +"указывается результат B<getpid>(2))." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"As well as setting the file descriptor owner, one must also enable " +"generation of signals on the file descriptor. This is done by using the " +"B<fcntl>() B<F_SETFL> command to set the B<O_ASYNC> file status flag on the " +"file descriptor. Subsequently, a B<SIGIO> signal is sent whenever input or " +"output becomes possible on the file descriptor. The B<fcntl>() B<F_SETSIG> " +"command can be used to obtain delivery of a signal other than B<SIGIO>." +msgstr "" +"Помимо установки владельца дескриптора файла, также нужно включить генерацию " +"сигналов для файлового дескриптора. Это делается посредством установки флага " +"состояния B<O_ASYNC> в файловом дескрипторе с помощью B<fcntl>() с командой " +"B<F_SETFL>. После этого сигнал B<SIGIO> посылается всякий раз, когда для " +"данного файлового дескриптора становится возможным ввод или вывод. Для " +"включения доставки сигнала, отличного от B<SIGIO>, можно использовать " +"команду B<F_SETSIG> вызова B<fcntl>()." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Sending a signal to the owner process (group) specified by B<F_SETOWN> is " +"subject to the same permissions checks as are described for B<kill>(2), " +"where the sending process is the one that employs B<F_SETOWN> (but see BUGS " +"below). If this permission check fails, then the signal is silently " +"discarded. I<Note>: The B<F_SETOWN> operation records the caller's " +"credentials at the time of the B<fcntl>() call, and it is these saved " +"credentials that are used for the permission checks." +msgstr "" +"Отправка сигнала процессу-владельцу (группе), указанному с помощью " +"B<F_SETOWN> — такая же проверка прав, как описано в B<kill>(2), где " +"посылающий процесс один из тех, который может пользоваться B<F_SETOWN> (но " +"смотрите раздел ДЕФЕКТЫ далее). Если проверка не проходит, то сигнал просто " +"отбрасывается. I<Замечание>: операция B<F_SETOWN> сохраняет мандаты " +"вызывающего на момент вызова B<fcntl>(), и эти сохранённые мандаты затем " +"используются при проверке прав." + +#. The following appears to be rubbish. It doesn't seem to +#. be true according to the kernel source, and I can write +#. a program that gets a terminal-generated SIGIO even though +#. it is not the foreground process group of the terminal. +#. -- MTK, 8 Apr 05 +#. If the file descriptor +#. .I fd +#. refers to a terminal device, then SIGIO +#. signals are sent to the foreground process group of the terminal. +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"If the file descriptor I<fd> refers to a socket, B<F_SETOWN> also selects " +"the recipient of B<SIGURG> signals that are delivered when out-of-band data " +"arrives on that socket. (B<SIGURG> is sent in any situation where " +"B<select>(2) would report the socket as having an \"exceptional " +"condition\".)" +msgstr "" +"Если файловый дескриптор I<fd> указывает на сокет, то по команде B<F_SETOWN> " +"для него также выбирается получатель сигналов B<SIGURG>, которые " +"доставляются, когда на сокет поступают внеполосные данные. (B<SIGURG> " +"посылается во всех ситуациях, когда вызов B<select>(2) говорит, что сокет " +"находится в состоянии \"исключительной ситуации\".)" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, fuzzy +#| msgid "" +#| "The following was true in 2.6.x kernels up to and including kernel 2.6.11:" +msgid "The following was true in Linux 2.6.x up to and including Linux 2.6.11:" +msgstr "Следующее верно для ядер 2.6.x, до 2.6.11 включительно:" + +#. The relevant place in the (2.6) kernel source is the +#. 'switch' in fs/fcntl.c::send_sigio_to_task() -- MTK, Apr 2005 +#. send_sigurg()/send_sigurg_to_task() bypasses +#. kill_fasync()/send_sigio()/send_sigio_to_task() +#. to directly call send_group_sig_info() +#. -- MTK, Apr 2005 (kernel 2.6.11) +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"If a nonzero value is given to B<F_SETSIG> in a multithreaded process " +"running with a threading library that supports thread groups (e.g., NPTL), " +"then a positive value given to B<F_SETOWN> has a different meaning: instead " +"of being a process ID identifying a whole process, it is a thread ID " +"identifying a specific thread within a process. Consequently, it may be " +"necessary to pass B<F_SETOWN> the result of B<gettid>(2) instead of " +"B<getpid>(2) to get sensible results when B<F_SETSIG> is used. (In current " +"Linux threading implementations, a main thread's thread ID is the same as " +"its process ID. This means that a single-threaded program can equally use " +"B<gettid>(2) or B<getpid>(2) in this scenario.) Note, however, that the " +"statements in this paragraph do not apply to the B<SIGURG> signal generated " +"for out-of-band data on a socket: this signal is always sent to either a " +"process or a process group, depending on the value given to B<F_SETOWN>." +msgstr "" +"Если для B<F_SETSIG> передаётся ненулевое значение в многонитевой процесс, " +"работающий с библиотекой нитей (например, NPTL), которая обеспечивает " +"поддержку групп нитей, то положительное значение, переданное B<F_SETOWN>, " +"имеет другой смысл: вместо указания ID процесса, описывающего весь процесс, " +"она является ID нити, указывающим на определённую нить процесса. Поэтому " +"может понадобиться передать в B<F_SETOWN> результат B<gettid>(2), а не " +"B<getpid>(2), чтобы получить правильный результат при использовании " +"B<F_SETSIG>. (В имеющихся реализациях Linux ID главной нити совпадает с ID " +"процесса. Это означает, что в программе с одной нитью можно использовать " +"любой вызов, B<gettid>(2) или B<getpid>(2), в этом случае.) Однако заметим, " +"что утверждения этого абзаца не применимы к сигналу B<SIGURG>, генерируемому " +"для внеполосных данных сокета: этот сигнал всегда посылается или процессу " +"или группе процессов, в зависимости от значения, указанного для B<F_SETOWN>." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"The above behavior was accidentally dropped in Linux 2.6.12, and won't be " +"restored. From Linux 2.6.32 onward, use B<F_SETOWN_EX> to target B<SIGIO> " +"and B<SIGURG> signals at a particular thread." +msgstr "" +"Описанное выше поведение было случайно удалено из Linux 2.6.12, и так и не " +"восстановлено. Начиная с Linux 2.6.32 используйте B<F_SETOWN_EX> при " +"назначении сигналов B<SIGIO> и B<SIGURG> для определённой нити." + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B<F_GETOWN_EX> (I<struct f_owner_ex *>) (since Linux 2.6.32)" +msgstr "B<F_GETOWN_EX> (I<struct f_owner_ex *>) (начиная с Linux 2.6.32)" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Return the current file descriptor owner settings as defined by a previous " +"B<F_SETOWN_EX> operation. The information is returned in the structure " +"pointed to by I<arg>, which has the following form:" +msgstr "" +"Получить настройки владения текущим файловым дескриптором, установленные " +"предыдущей командой B<F_SETOWN_EX>. Информация возвращается в структуре, " +"указанной в I<arg>, которая имеет следующий вид:" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "" +"struct f_owner_ex {\n" +" int type;\n" +" pid_t pid;\n" +"};\n" +msgstr "" +"struct f_owner_ex {\n" +" int type;\n" +" pid_t pid;\n" +"};\n" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"The I<type> field will have one of the values B<F_OWNER_TID>, " +"B<F_OWNER_PID>, or B<F_OWNER_PGRP>. The I<pid> field is a positive integer " +"representing a thread ID, process ID, or process group ID. See " +"B<F_SETOWN_EX> for more details." +msgstr "" +"Поле I<type> будет равно: B<F_OWNER_TID>, B<F_OWNER_PID> или " +"B<F_OWNER_PGRP>. Значением поля I<pid> будет положительное целое, " +"представляющее ID нити, ID процесса или ID группы процессов. Подробности " +"смотрите в описании B<F_SETOWN_EX>." + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B<F_SETOWN_EX> (I<struct f_owner_ex *>) (since Linux 2.6.32)" +msgstr "B<F_SETOWN_EX> (I<struct f_owner_ex *>) (начиная с Linux 2.6.32)" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"This operation performs a similar task to B<F_SETOWN>. It allows the caller " +"to direct I/O availability signals to a specific thread, process, or process " +"group. The caller specifies the target of signals via I<arg>, which is a " +"pointer to a I<f_owner_ex> structure. The I<type> field has one of the " +"following values, which define how I<pid> is interpreted:" +msgstr "" +"Эта команда выполняет задачу, подобную B<F_SETOWN>. Она позволяет " +"вызывающему назначить сигналы доступности ввода-вывода определённой нити, " +"процессу или группе процессов. Вызывающий указывает приёмник сигналов в " +"I<arg>, выражаемый указателем на структуру I<f_owner_ex>. Поле I<type> имеет " +"одно из следующих значений, которое определяет чем считать I<pid>:" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B<F_OWNER_TID>" +msgstr "B<F_OWNER_TID>" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Send the signal to the thread whose thread ID (the value returned by a call " +"to B<clone>(2) or B<gettid>(2)) is specified in I<pid>." +msgstr "" +"Посылать сигнал нити, чей ID (значение, возвращаемое вызовом B<clone>(2) или " +"B<gettid>(2)) указан в I<pid>." + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B<F_OWNER_PID>" +msgstr "B<F_OWNER_PID>" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "Send the signal to the process whose ID is specified in I<pid>." +msgstr "Посылать сигнал процессу, чей ID указан в I<pid>." + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B<F_OWNER_PGRP>" +msgstr "B<F_OWNER_PGRP>" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Send the signal to the process group whose ID is specified in I<pid>. (Note " +"that, unlike with B<F_SETOWN>, a process group ID is specified as a positive " +"value here.)" +msgstr "" +"Посылать сигнал группе процессов, чей ID указан в I<pid>. (Заметим, что в " +"отличие от B<F_SETOWN>, ID группы процессов здесь задаётся как положительное " +"значение.)" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B<F_GETSIG> (I<void>)" +msgstr "B<F_GETSIG> (I<void>)" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Return (as the function result) the signal sent when input or output " +"becomes possible. A value of zero means B<SIGIO> is sent. Any other value " +"(including B<SIGIO>) is the signal sent instead, and in this case " +"additional info is available to the signal handler if installed with " +"B<SA_SIGINFO>. I<arg> is ignored." +msgstr "" +"Получить (как результат функции) сигнал, посылаемый, когда становится " +"возможным ввод или вывод. Значение 0 означает сигнал B<SIGIO>. Любое другое " +"значение (включая B<SIGIO>) является другим сигналом, и в этом случае для " +"обработчика сигнала доступна дополнительная информация, если он был " +"установлен с B<SA_SIGINFO>. Аргумент I<arg> игнорируется." + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B<F_SETSIG> (I<int>)" +msgstr "B<F_SETSIG> (I<int>)" + +#. The following was true only up until Linux 2.6.11: +#. Additionally, passing a nonzero value to +#. .B F_SETSIG +#. changes the signal recipient from a whole process to a specific thread +#. within a process. +#. See the description of +#. .B F_SETOWN +#. for more details. +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Set the signal sent when input or output becomes possible to the value given " +"in I<arg>. A value of zero means to send the default B<SIGIO> signal. Any " +"other value (including B<SIGIO>) is the signal to send instead, and in this " +"case additional info is available to the signal handler if installed with " +"B<SA_SIGINFO>." +msgstr "" +"Установить сигнал, который будет посылаться когда станет возможен ввод или " +"вывод, в значение, указанное в I<arg>. Значение 0 означает сигнал по " +"умолчанию B<SIGIO>. Любое другое значение (включая B<SIGIO>) является другим " +"сигналом, и в этом случае, для обработчика сигнала доступна дополнительная " +"информация, если он был установлен с B<SA_SIGINFO>." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"By using B<F_SETSIG> with a nonzero value, and setting B<SA_SIGINFO> for the " +"signal handler (see B<sigaction>(2)), extra information about I/O events is " +"passed to the handler in a I<siginfo_t> structure. If the I<si_code> field " +"indicates the source is B<SI_SIGIO>, the I<si_fd> field gives the file " +"descriptor associated with the event. Otherwise, there is no indication " +"which file descriptors are pending, and you should use the usual mechanisms " +"(B<select>(2), B<poll>(2), B<read>(2) with B<O_NONBLOCK> set etc.) to " +"determine which file descriptors are available for I/O." +msgstr "" +"В случае использования B<F_SETSIG> с ненулевым значением и установкой " +"B<SA_SIGINFO> для обработчика сигнала (см. B<sigaction>(2)) обработчику " +"передаётся дополнительная информация о событиях ввода/вывода в структуре " +"I<siginfo_t>. Если поле I<si_code> показывает, что источник \\(em " +"B<SI_SIGIO>, то поле I<si_fd> содержит файловый дескриптор, ассоциированный " +"с событием. В противном случае не существует никакого механизма, чтобы " +"сообщить с каким файловым дескриптором связан полученный сигнал, и вы должны " +"использовать обычные механизмы (B<select>(2), B<poll>(2), B<read>(2) с " +"установленным B<O_NONBLOCK> и т.д.), чтобы определить какой файловый " +"дескриптор доступен для ввода/вывода." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Note that the file descriptor provided in I<si_fd> is the one that was " +"specified during the B<F_SETSIG> operation. This can lead to an unusual " +"corner case. If the file descriptor is duplicated (B<dup>(2) or similar), " +"and the original file descriptor is closed, then I/O events will continue to " +"be generated, but the I<si_fd> field will contain the number of the now " +"closed file descriptor." +msgstr "" +"Заметим, что файловый дескриптор, предоставляемый в I<si_fd>, тот же, что " +"указывался при операции B<F_SETSIG>. Это может привести к редкой тупиковой " +"ситуации. Если с файлового дескриптора делался дубль (B<dup>(2) или подобным " +"вызовом), и оригинальный файловый дескриптор закрыт, то события ввода-вывода " +"будут продолжать генерироваться, но поле I<si_fd> будет содержать номер " +"теперь уже закрытого файлового дескриптора." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"By selecting a real time signal (value E<gt>= B<SIGRTMIN>), multiple I/O " +"events may be queued using the same signal numbers. (Queuing is dependent " +"on available memory.) Extra information is available if B<SA_SIGINFO> is " +"set for the signal handler, as above." +msgstr "" +"При выборе сигнала реального времени (значение E<gt>= B<SIGRTMIN>) в очередь " +"может добавляться несколько событий ввода-вывода с одинаковыми номерами " +"сигналов (размер очереди зависит от доступной памяти). Дополнительная " +"информация будет доступна как описано выше, если для обработчика сигнала " +"будет установлено B<SA_SIGINFO>." + +#. See fs/fcntl.c::send_sigio_to_task() (2.4/2.6) sources -- MTK, Apr 05 +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Note that Linux imposes a limit on the number of real-time signals that may " +"be queued to a process (see B<getrlimit>(2) and B<signal>(7)) and if this " +"limit is reached, then the kernel reverts to delivering B<SIGIO>, and this " +"signal is delivered to the entire process rather than to a specific thread." +msgstr "" +"Заметим, что в Linux есть предел на количество сигналов реального времени, " +"которые могут находиться в очереди процесса (см. B<getrlimit>(2) и " +"B<signal>(7)), и если этот предел достигнут, то ядро изменяет пункт доставки " +"B<SIGIO>, и этот сигнал доставляется всему процессу, а не указанной нити." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Using these mechanisms, a program can implement fully asynchronous I/O " +"without using B<select>(2) or B<poll>(2) most of the time." +msgstr "" +"Используя эти механизмы, программа может реализовать полностью асинхронный " +"ввод-вывод почти не используя в своей работе B<select>(2) или B<poll>(2)." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, fuzzy +#| msgid "" +#| "The use of B<O_ASYNC> is specific to BSD and Linux. The only use of " +#| "B<F_GETOWN> and B<F_SETOWN> specified in POSIX.1 is in conjunction with " +#| "the use of the B<SIGURG> signal on sockets. (POSIX does not specify the " +#| "B<SIGIO> signal.) B<F_GETOWN_EX>, B<F_SETOWN_EX>, B<F_GETSIG>, and " +#| "B<F_SETSIG> are Linux-specific. POSIX has asynchronous I/O and the " +#| "I<aio_sigevent> structure to achieve similar things; these are also " +#| "available in Linux as part of the GNU C Library (Glibc)." +msgid "" +"The use of B<O_ASYNC> is specific to BSD and Linux. The only use of " +"B<F_GETOWN> and B<F_SETOWN> specified in POSIX.1 is in conjunction with the " +"use of the B<SIGURG> signal on sockets. (POSIX does not specify the " +"B<SIGIO> signal.) B<F_GETOWN_EX>, B<F_SETOWN_EX>, B<F_GETSIG>, and " +"B<F_SETSIG> are Linux-specific. POSIX has asynchronous I/O and the " +"I<aio_sigevent> structure to achieve similar things; these are also " +"available in Linux as part of the GNU C Library (glibc)." +msgstr "" +"Использование B<O_ASYNC>, является специфичным для BSD и Linux. В POSIX.1 " +"описано только использование B<F_GETOWN> и B<F_SETOWN> вместе с сигналом " +"B<SIGURG> для сокетов (в POSIX не определён сигнал B<SIGIO>). " +"B<F_GETOWN_EX>, B<F_SETOWN_EX>, B<F_GETSIG>, and B<F_SETSIG> есть только в " +"Linux. В POSIX описан асинхронный ввод-вывод и структура I<aio_sigevent>, " +"используемая для сходных действий; они также доступны в Linux как часть " +"библиотеки GNU C (Glibc)." + +#. type: SS +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "Leases" +msgstr "Аренда" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"B<F_SETLEASE> and B<F_GETLEASE> (Linux 2.4 onward) are used to establish a " +"new lease, and retrieve the current lease, on the open file description " +"referred to by the file descriptor I<fd>. A file lease provides a mechanism " +"whereby the process holding the lease (the \"lease holder\") is notified " +"(via delivery of a signal) when a process (the \"lease breaker\") tries to " +"B<open>(2) or B<truncate>(2) the file referred to by that file descriptor." +msgstr "" +"Команды B<F_SETLEASE> и B<F_GETLEASE> (в Linux 2.4 и выше) используются для " +"установки новой и получения текущей аренды открытого описания файла, на " +"который указывает файловый дескриптор I<fd>. Аренда файла предоставляет " +"механизм, посредством которого процесс, который удерживает аренду " +"(«арендатор»), уведомляется (отправкой сигнала), когда процесс («нарушитель " +"аренды») пытается выполнить вызов B<open>(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<F_SETLEASE> (I<int>)" +msgstr "B<F_SETLEASE> (I<int>)" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Set or remove a file lease according to which of the following values is " +"specified in the integer I<arg>:" +msgstr "" +"Установить или удалить аренду файла, в соответствии со значениями, " +"указываемыми в I<arg>:" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B<F_RDLCK>" +msgstr "B<F_RDLCK>" + +#. The following became true in Linux 2.6.10: +#. See the man-pages-2.09 Changelog for further info. +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Take out a read lease. This will cause the calling process to be notified " +"when the file is opened for writing or is truncated. A read lease can be " +"placed only on a file descriptor that is opened read-only." +msgstr "" +"Установить аренду чтения. Это приведёт к генерации уведомления вызывающего " +"процесса, когда файл открывается для записи или усечения. Аренда чтения " +"может быть выделена только на файловый дескриптор, открытый только на чтение." + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B<F_WRLCK>" +msgstr "B<F_WRLCK>" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Take out a write lease. This will cause the caller to be notified when the " +"file is opened for reading or writing or is truncated. A write lease may be " +"placed on a file only if there are no other open file descriptors for the " +"file." +msgstr "" +"Установить аренду записи. Это приведёт к генерации уведомления вызывающего " +"процесса, когда файл открывается для чтения или записи или выполняется его " +"усечение. Аренда записи может быть установлена на файл, только если этот " +"файл не имеет других открытых файловых дескрипторов." + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B<F_UNLCK>" +msgstr "B<F_UNLCK>" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "Remove our lease from the file." +msgstr "Удалить аренду с указанного файла." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Leases are associated with an open file description (see B<open>(2)). This " +"means that duplicate file descriptors (created by, for example, B<fork>(2) " +"or B<dup>(2)) refer to the same lease, and this lease may be modified or " +"released using any of these descriptors. Furthermore, the lease is released " +"by either an explicit B<F_UNLCK> operation on any of these duplicate file " +"descriptors, or when all such file descriptors have been closed." +msgstr "" +"Аренды ассоциируются с открытым файловым описанием (см. B<open>(2)). Это " +"значит, что дублированные файловые дескрипторы (созданные, например, " +"B<fork>(2) или B<dup>(2)) указывают на одну и ту же аренду, и эта аренда " +"может изменяться или освобождаться через любой из этих дескрипторов. Более " +"того, аренда освобождается или через явную команду B<F_UNLCK> на любом из " +"этих дублированных файловых дескрипторов, или когда все эти файловые " +"дескрипторы будут закрыты." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Leases may be taken out only on regular files. An unprivileged process may " +"take out a lease only on a file whose UID (owner) matches the filesystem UID " +"of the process. A process with the B<CAP_LEASE> capability may take out " +"leases on arbitrary files." +msgstr "" +"Аренды могут быть выданы только на обычные файлы. Непривилегированный " +"процесс может получить аренду только на файл, чей UID (владельца) совпадает " +"с UID на файловой системе процесса. Процесс с мандатом B<CAP_LEASE> может " +"получить аренду на любые файлы." + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B<F_GETLEASE> (I<void>)" +msgstr "B<F_GETLEASE> (I<void>)" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Indicates what type of lease is associated with the file descriptor I<fd> by " +"returning either B<F_RDLCK>, B<F_WRLCK>, or B<F_UNLCK>, indicating, " +"respectively, a read lease , a write lease, or no lease. I<arg> is ignored." +msgstr "" +"Узнать какой тип аренды ассоциирован с файловым дескриптором I<fd>; " +"возвращается одно из значений B<F_RDLCK>, B<F_WRLCK> или B<F_UNLCK>, " +"соответственно означающих аренду на чтение, запись или что аренды нет. " +"Аргумент I<arg> игнорируется." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"When a process (the \"lease breaker\") performs an B<open>(2) or " +"B<truncate>(2) that conflicts with a lease established via B<F_SETLEASE>, " +"the system call is blocked by the kernel and the kernel notifies the lease " +"holder by sending it a signal (B<SIGIO> by default). The lease holder " +"should respond to receipt of this signal by doing whatever cleanup is " +"required in preparation for the file to be accessed by another process (e." +"g., flushing cached buffers) and then either remove or downgrade its lease. " +"A lease is removed by performing an B<F_SETLEASE> command specifying I<arg> " +"as B<F_UNLCK>. If the lease holder currently holds a write lease on the " +"file, and the lease breaker is opening the file for reading, then it is " +"sufficient for the lease holder to downgrade the lease to a read lease. " +"This is done by performing an B<F_SETLEASE> command specifying I<arg> as " +"B<F_RDLCK>." +msgstr "" +"Когда процесс («нарушителя аренды») выполняет вызов B<open>(2) или " +"B<truncate>(2), который конфликтует с арендой, установленной через " +"B<F_SETLEASE>, то системный вызов блокируется ядром и ядро уведомляет " +"арендатора сигналом (по умолчанию B<SIGIO>). Арендатор должен при получении " +"этого сигнала выполнить все необходимые действия по очистке для подготовки " +"этого файла к использованию другим процессом (например, сбросить буферы " +"кэша) и затем удалить или снизить условия аренды. Аренда удаляется по " +"команде B<F_SETLEASE> с аргументом I<arg>, установленным в B<F_UNLCK>. Если " +"арендатор удерживает аренду на запись в файл, и нарушитель аренды открывает " +"файл на чтение, то достаточно того, что арендатор понизит условия аренды до " +"аренды на чтение. Это выполняется командой B<F_SETLEASE> с аргументом " +"I<arg>, установленным в B<F_RDLCK>." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"If the lease holder fails to downgrade or remove the lease within the number " +"of seconds specified in I</proc/sys/fs/lease-break-time>, then the kernel " +"forcibly removes or downgrades the lease holder's lease." +msgstr "" +"Если арендатор не освободит аренду или не снизит условия в течении " +"определённого количества секунд, указанного в файле I</proc/sys/fs/lease-" +"break-time>, то ядро принудительно удалит или снизит условия аренды для " +"арендатора." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Once a lease break has been initiated, B<F_GETLEASE> returns the target " +"lease type (either B<F_RDLCK> or B<F_UNLCK>, depending on what would be " +"compatible with the lease breaker) until the lease holder voluntarily " +"downgrades or removes the lease or the kernel forcibly does so after the " +"lease break timer expires." +msgstr "" +"После того, как был начат разрыв аренды, B<F_GETLEASE> возвращает тип " +"назначения аренды (или B<F_RDLCK> или B<F_UNLCK>, в зависимости от " +"необходимости совместимости с нарушителем аренды) до тех пор, пока держатель " +"аренды добровольно не отдаст или не удалит аренду или ядро принудительно не " +"сделает это после истечения таймера разрыва аренды." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Once the lease has been voluntarily or forcibly removed or downgraded, and " +"assuming the lease breaker has not unblocked its system call, the kernel " +"permits the lease breaker's system call to proceed." +msgstr "" +"После того как аренда снята держателем аренды или принудительно удалена и " +"снижены условия, и предполагая, что нарушитель аренды не выполнял " +"неблокирующий системный вызов, ядро позволяет продолжить работу системного " +"вызова нарушителя аренды." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"If the lease breaker's blocked B<open>(2) or B<truncate>(2) is interrupted " +"by a signal handler, then the system call fails with the error B<EINTR>, but " +"the other steps still occur as described above. If the lease breaker is " +"killed by a signal while blocked in B<open>(2) or B<truncate>(2), then the " +"other steps still occur as described above. If the lease breaker specifies " +"the B<O_NONBLOCK> flag when calling B<open>(2), then the call immediately " +"fails with the error B<EWOULDBLOCK>, but the other steps still occur as " +"described above." +msgstr "" +"Если нарушитель аренды, заблокированный в B<open>(2) или B<truncate>(2), " +"прерывается обработчиком сигнала, то системный вызов завершается неудачно с " +"ошибкой B<EINTR>, но другие шаги по-прежнему выполняются как описано ранее. " +"Если нарушитель аренды завершается по сигналу будучи блокированным в " +"B<open>(2) или B<truncate>(2), то другие шаги по-прежнему выполняются как " +"описано ранее. Если нарушитель аренды указал флаг B<O_NONBLOCK> при вызове " +"B<open>(2), то вызов немедленно завершается неудачей с ошибкой " +"B<EWOULDBLOCK>, но другие шаги по-прежнему выполняются как описано ранее. " + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"The default signal used to notify the lease holder is B<SIGIO>, but this can " +"be changed using the B<F_SETSIG> command to B<fcntl>(). If a B<F_SETSIG> " +"command is performed (even one specifying B<SIGIO>), and the signal handler " +"is established using B<SA_SIGINFO>, then the handler will receive a " +"I<siginfo_t> structure as its second argument, and the I<si_fd> field of " +"this argument will hold the file descriptor of the leased file that has been " +"accessed by another process. (This is useful if the caller holds leases " +"against multiple files.)" +msgstr "" +"По умолчанию, для уведомления арендатора используется сигнал B<SIGIO>, но " +"его можно изменить, используя команду B<F_SETSIG> для B<fcntl>(). Если " +"выполняется команда B<F_SETSIG> (даже назначая сигнал B<SIGIO>), и при этом " +"обработчик сигнала устанавливается с использованием B<SA_SIGINFO>, то " +"обработчик получит в качестве второго аргумента структуру I<siginfo_t>, в " +"которой поле I<si_fd> будет содержать файловый дескриптор арендованного " +"файла, к которому пытается получить доступ другой процесс (это полезно, если " +"вызывающий процесс удерживает аренду на несколько файлов)." + +#. type: SS +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "File and directory change notification (dnotify)" +msgstr "Уведомления об изменении файла и каталога (dnotify)" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B<F_NOTIFY> (I<int>)" +msgstr "B<F_NOTIFY> (I<int>)" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"(Linux 2.4 onward) Provide notification when the directory referred to by " +"I<fd> or any of the files that it contains is changed. The events to be " +"notified are specified in I<arg>, which is a bit mask specified by ORing " +"together zero or more of the following bits:" +msgstr "" +"(Начиная с Linux 2.4) Уведомлять при смене каталога, на который указывает " +"I<fd> или когда изменились файлы, которые в нём содержатся. События, о " +"наступлении которых делается уведомление, задаются в аргументе I<arg>, " +"который является битовой маской, получаемой сложением (OR) одного или более " +"следующих бит:" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B<DN_ACCESS>" +msgstr "B<DN_ACCESS>" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "A file was accessed (B<read>(2), B<pread>(2), B<readv>(2), and similar)" +msgstr "" +"Был произведён доступ к файлу (B<read>(2), B<pread>(2), B<readv>(2) и " +"подобные)." + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B<DN_MODIFY>" +msgstr "B<DN_MODIFY>" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"A file was modified (B<write>(2), B<pwrite>(2), B<writev>(2), " +"B<truncate>(2), B<ftruncate>(2), and similar)." +msgstr "" +"Файл был изменён (B<write>(2), B<pwrite>(2), B<writev>(2), B<truncate>(2), " +"B<ftruncate>(2) и подобные)." + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B<DN_CREATE>" +msgstr "B<DN_CREATE>" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"A file was created (B<open>(2), B<creat>(2), B<mknod>(2), B<mkdir>(2), " +"B<link>(2), B<symlink>(2), B<rename>(2) into this directory)." +msgstr "" +"Файл был создан (B<open>(2), B<creat>(2), B<mknod>(2), B<mkdir>(2), " +"B<link>(2), B<symlink>(2), B<rename>(2) в этом каталоге)." + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B<DN_DELETE>" +msgstr "B<DN_DELETE>" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"A file was unlinked (B<unlink>(2), B<rename>(2) to another directory, " +"B<rmdir>(2))." +msgstr "" +"Файл был удалён (B<unlink>(2), B<rename>(2) в другой каталог, B<rmdir>(2))." + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B<DN_RENAME>" +msgstr "B<DN_RENAME>" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "A file was renamed within this directory (B<rename>(2))." +msgstr "Файл был переименован внутри каталога (B<rename>(2))." + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B<DN_ATTRIB>" +msgstr "B<DN_ATTRIB>" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"The attributes of a file were changed (B<chown>(2), B<chmod>(2), " +"B<utime>(2), B<utimensat>(2), and similar)." +msgstr "" +"У файла были изменены атрибуты (B<chown>(2), B<chmod>(2), B<utime>(2), " +"B<utimensat>(2) и подобные)." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"(In order to obtain these definitions, the B<_GNU_SOURCE> feature test macro " +"must be defined before including I<any> header files.)" +msgstr "" +"(Чтобы получить эти определения, нужно задать макрос тестирования свойств " +"B<_GNU_SOURCE> перед I<всеми> остальными заголовочными файлами.)" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Directory notifications are normally \"one-shot\", and the application must " +"reregister to receive further notifications. Alternatively, if " +"B<DN_MULTISHOT> is included in I<arg>, then notification will remain in " +"effect until explicitly removed." +msgstr "" +"Уведомления об изменении состояния каталога обычно однократные и приложение " +"должно перерегистрировать установку уведомлений, чтобы и дальше получать их. " +"Однако, если в аргумент I<arg>, добавить B<DN_MULTISHOT>, то уведомления " +"будут приходить до тех пор, пока не будут явно отменены." + +#. The following does seem a poor API-design choice... +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"A series of B<F_NOTIFY> requests is cumulative, with the events in I<arg> " +"being added to the set already monitored. To disable notification of all " +"events, make an B<F_NOTIFY> call specifying I<arg> as 0." +msgstr "" +"Серии запросов B<F_NOTIFY> добавляются к событиям в I<arg>, которые уже " +"установлены. Чтобы выключить уведомления всех событий, выполните вызов " +"B<F_NOTIFY>, указав 0 в I<arg>." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Notification occurs via delivery of a signal. The default signal is " +"B<SIGIO>, but this can be changed using the B<F_SETSIG> command to " +"B<fcntl>(). (Note that B<SIGIO> is one of the nonqueuing standard signals; " +"switching to the use of a real-time signal means that multiple notifications " +"can be queued to the process.) In the latter case, the signal handler " +"receives a I<siginfo_t> structure as its second argument (if the handler was " +"established using B<SA_SIGINFO>) and the I<si_fd> field of this structure " +"contains the file descriptor which generated the notification (useful when " +"establishing notification on multiple directories)." +msgstr "" +"Уведомление происходит посредством доставки сигнала. Сигналом по умолчанию " +"является B<SIGIO>, но это можно изменить с помощью команды B<F_SETSIG> " +"B<fcntl>() (заметим, что B<SIGIO> — один из безочерёдных стандартных " +"сигналов; переход к использованию сигнала реального времени означает, что " +"многократные уведомления могут попасть в очередь процесса). В последнем " +"случае, обработчик сигнала принимает структуру I<siginfo_t> в качестве " +"второго аргумента (если обработчик был установлен с помощью B<SA_SIGINFO>), " +"в поле I<si_fd> этой структуры содержится файловый описатель, для которого " +"сгенерировано уведомление (полезно при учёте уведомлений из нескольких " +"каталогов)." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Especially when using B<DN_MULTISHOT>, a real time signal should be used for " +"notification, so that multiple notifications can be queued." +msgstr "" +"Кроме того, когда используется B<DN_MULTISHOT>, для уведомлений должен бы " +"быть использован сигнал реального времени, так что множественные уведомления " +"могут быть поставлены в очередь." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, fuzzy +#| msgid "" +#| "B<NOTE:> New applications should use the I<inotify> interface (available " +#| "since kernel 2.6.13), which provides a much superior interface for " +#| "obtaining notifications of filesystem events. See B<inotify>(7)." +msgid "" +"B<NOTE:> New applications should use the I<inotify> interface (available " +"since Linux 2.6.13), which provides a much superior interface for obtaining " +"notifications of filesystem events. See B<inotify>(7)." +msgstr "" +"B<ЗАМЕЧАНИЕ:> В новых приложениях нужно использовать интерфейс I<inotify> " +"(доступен начиная с ядра 2.6.13), который предоставляет намного лучший " +"интерфейс для получения уведомлений о событиях в файловой системе. Смотрите " +"B<inotify>(7)." + +#. type: SS +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "Changing the capacity of a pipe" +msgstr "Изменение ёмкости канала" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B<F_SETPIPE_SZ> (I<int>; since Linux 2.6.35)" +msgstr "B<F_SETPIPE_SZ> (I<int>; начиная с Linux 2.6.35)" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Change the capacity of the pipe referred to by I<fd> to be at least I<arg> " +"bytes. An unprivileged process can adjust the pipe capacity to any value " +"between the system page size and the limit defined in I</proc/sys/fs/pipe-" +"max-size> (see B<proc>(5)). Attempts to set the pipe capacity below the " +"page size are silently rounded up to the page size. Attempts by an " +"unprivileged process to set the pipe capacity above the limit in I</proc/sys/" +"fs/pipe-max-size> yield the error B<EPERM>; a privileged process " +"(B<CAP_SYS_RESOURCE>) can override the limit." +msgstr "" +"Изменяет ёмкость канала, на который указывает I<fd>; она становится равной " +"не менее I<arg> байт. Непривилегированный процесс может задать ёмкость " +"канала любого значения, начиная с размера системной страницы до ограничения, " +"заданного в I</proc/sys/fs/pipe-max-size> (смотрите B<proc>(5)). При задании " +"ёмкости меньше размера страницы, она будет без ошибок округлена до размера " +"страницы. При задании непривилегированным процессом ёмкости канала больше " +"ограничения из I</proc/sys/fs/pipe-max-size> приведёт к ошибке B<EPERM>; " +"привилегированный процесс (с B<CAP_SYS_RESOURCE>) может превысить это " +"ограничение." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"When allocating the buffer for the pipe, the kernel may use a capacity " +"larger than I<arg>, if that is convenient for the implementation. (In the " +"current implementation, the allocation is the next higher power-of-two page-" +"size multiple of the requested size.) The actual capacity (in bytes) that " +"is set is returned as the function result." +msgstr "" +"При выделении буфера под канал ядро может использовать большую ёмкость чем " +"указано в I<arg>, если это удобно для реализации (в текущей реализации " +"размером выделения является следующий кратный степени двойки размер страницы " +"больший запрашиваемого размера). Реальным размером (в байтах) считается " +"возвращаемый результат функции." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Attempting to set the pipe capacity smaller than the amount of buffer space " +"currently used to store data produces the error B<EBUSY>." +msgstr "" +"Попытка задать ёмкость канала меньшую размера буферного пространства, " +"используемого в данный момент для хранения данных в канале приводит к ошибке " +"B<EBUSY>." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Note that because of the way the pages of the pipe buffer are employed when " +"data is written to the pipe, the number of bytes that can be written may be " +"less than the nominal size, depending on the size of the writes." +msgstr "" +"Заметим, что из-за способа использования страниц буфера канала при записи " +"данных количество байт, которые могут быть записаны, может быть меньше, чем " +"номинальный размер, в зависимости от размера записей." + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B<F_GETPIPE_SZ> (I<void>; since Linux 2.6.35)" +msgstr "B<F_GETPIPE_SZ> (I<void>; начиная с Linux 2.6.35)" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Return (as the function result) the capacity of the pipe referred to by " +"I<fd>." +msgstr "Возвращает (как результат функции) ёмкость канала, указываемого I<fd>." + +#. type: SS +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "File Sealing" +msgstr "Опечатывание файла (file sealing)" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"File seals limit the set of allowed operations on a given file. For each " +"seal that is set on a file, a specific set of operations will fail with " +"B<EPERM> on this file from now on. The file is said to be sealed. The " +"default set of seals depends on the type of the underlying file and " +"filesystem. For an overview of file sealing, a discussion of its purpose, " +"and some code examples, see B<memfd_create>(2)." +msgstr "" +"Опечатывание файла позволяет ограничить набор выполняемых над файлом " +"операций. Любая операция с файлом, попавшая в набор опечатанных, завершается " +"с ошибкой B<EPERM>. Набор печатей по умолчанию зависит от типа файла, к " +"которому он применяется и файловой системы. Описание опечатывания файла, " +"предназначение и примеры кода смотрите в B<memfd_create>(2)." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Currently, file seals can be applied only to a file descriptor returned by " +"B<memfd_create>(2) (if the B<MFD_ALLOW_SEALING> was employed). On other " +"filesystems, all B<fcntl>() operations that operate on seals will return " +"B<EINVAL>." +msgstr "" +"В настоящее время опечатывание файла может применяться к файловому " +"дескриптору, возвращаемому B<memfd_create>(2) (если был указан " +"B<MFD_ALLOW_SEALING>). В других файловых системах все операции B<fcntl>(), " +"относящиеся к печатям, возвращают B<EINVAL>." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Seals are a property of an inode. Thus, all open file descriptors referring " +"to the same inode share the same set of seals. Furthermore, seals can never " +"be removed, only added." +msgstr "" +"Печати (seals) — свойство inode. То есть все открытые файловые дескрипторы, " +"указывающие на один inode, имеют общий набор печатей. Кроме этого, печати " +"нельзя удалять, можно только добавлять." + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B<F_ADD_SEALS> (I<int>; since Linux 3.17)" +msgstr "B<F_ADD_SEALS> (I<int>; начиная с Linux 3.17)" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Add the seals given in the bit-mask argument I<arg> to the set of seals of " +"the inode referred to by the file descriptor I<fd>. Seals cannot be removed " +"again. Once this call succeeds, the seals are enforced by the kernel " +"immediately. If the current set of seals includes B<F_SEAL_SEAL> (see " +"below), then this call will be rejected with B<EPERM>. Adding a seal that " +"is already set is a no-op, in case B<F_SEAL_SEAL> is not set already. In " +"order to place a seal, the file descriptor I<fd> must be writable." +msgstr "" +"Добавляет печати из значения битовой маски I<arg> в набор печатей inode, на " +"которую ссылается файловый дескриптор I<fd>. Печати из набора нельзя " +"удалить. После успешного выполнения, печати сразу же учитываются ядром. Если " +"в текущий набор печатей входит B<F_SEAL_SEAL> (смотрите далее), то этот " +"вызов завершается с ошибкой B<EPERM>. Добавление уже установленной печати ни " +"к чему не приводит, если ещё не указана B<F_SEAL_SEAL>. Чтобы разместить " +"печать файловый дескриптор I<fd> должен быть доступен на запись." + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B<F_GET_SEALS> (I<void>; since Linux 3.17)" +msgstr "B<F_GET_SEALS> (I<void>; начиная с Linux 3.17)" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Return (as the function result) the current set of seals of the inode " +"referred to by I<fd>. If no seals are set, 0 is returned. If the file does " +"not support sealing, -1 is returned and I<errno> is set to B<EINVAL>." +msgstr "" +"Возвращает (в виде результата функции) текущий набор печатей inode, на " +"которую указывает I<fd>. Если печатей нет, возвращается 0. Если файл не " +"поддерживает опечатывание, то возвращается -1 и I<errno> присваивается " +"B<EINVAL>." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "The following seals are available:" +msgstr "Доступны следующие печати:" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B<F_SEAL_SEAL>" +msgstr "B<F_SEAL_SEAL>" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"If this seal is set, any further call to B<fcntl>() with B<F_ADD_SEALS> " +"fails with the error B<EPERM>. Therefore, this seal prevents any " +"modifications to the set of seals itself. If the initial set of seals of a " +"file includes B<F_SEAL_SEAL>, then this effectively causes the set of seals " +"to be constant and locked." +msgstr "" +"Если печать установлена, то последующий вызов B<fcntl>() с B<F_ADD_SEALS> " +"завершится ошибкой B<EPERM>. Таки образом, данная печать предотвращает " +"изменения самого набора печатей. Если начальный набор печатей файла содержит " +"B<F_SEAL_SEAL>, то он является постоянным и неизменяемым." + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B<F_SEAL_SHRINK>" +msgstr "B<F_SEAL_SHRINK>" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"If this seal is set, the file in question cannot be reduced in size. This " +"affects B<open>(2) with the B<O_TRUNC> flag as well as B<truncate>(2) and " +"B<ftruncate>(2). Those calls fail with B<EPERM> if you try to shrink the " +"file in question. Increasing the file size is still possible." +msgstr "" +"Если эта печать установлена, то нельзя уменьшить размер файла. Она влияет на " +"B<open>(2) с флагом B<O_TRUNC>, а также на B<truncate>(2) и B<ftruncate>(2). " +"Эти вызовы завершаются ошибкой B<EPERM>, если пытаются уменьшить файл. " +"Увеличение размера файла по-прежнему возможно." + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B<F_SEAL_GROW>" +msgstr "B<F_SEAL_GROW>" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"If this seal is set, the size of the file in question cannot be increased. " +"This affects B<write>(2) beyond the end of the file, B<truncate>(2), " +"B<ftruncate>(2), and B<fallocate>(2). These calls fail with B<EPERM> if you " +"use them to increase the file size. If you keep the size or shrink it, " +"those calls still work as expected." +msgstr "" +"Если эта печать установлена, то нельзя увеличить размер файла. Она влияет на " +"B<write>(2) за концом файла, B<truncate>(2), B<ftruncate>(2) и " +"B<fallocate>(2). Эти вызовы завершаются ошибкой B<EPERM>, если пытаются " +"увеличить файл. Уменьшение размера файла по-прежнему возможно." + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B<F_SEAL_WRITE>" +msgstr "B<F_SEAL_WRITE>" + +#. One or more other seals are typically used with F_SEAL_WRITE +#. because, given a file with the F_SEAL_WRITE seal set, then, +#. while it would no longer be possible to (say) write zeros into +#. the last 100 bytes of a file, it would still be possible +#. to (say) shrink the file by 100 bytes using ftruncate(), and +#. then increase the file size by 100 bytes, which would have +#. the effect of replacing the last hundred bytes by zeros. +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"If this seal is set, you cannot modify the contents of the file. Note that " +"shrinking or growing the size of the file is still possible and allowed. " +"Thus, this seal is normally used in combination with one of the other " +"seals. This seal affects B<write>(2) and B<fallocate>(2) (only in " +"combination with the B<FALLOC_FL_PUNCH_HOLE> flag). Those calls fail with " +"B<EPERM> if this seal is set. Furthermore, trying to create new shared, " +"writable memory-mappings via B<mmap>(2) will also fail with B<EPERM>." +msgstr "" +"Если эта печать установлена, то нельзя изменить содержимое файла. Заметим, " +"что уменьшение или увеличение файла по-прежнему возможно. То есть данная " +"печать, обычно, используется в комбинации с одной из этих печатей. Данная " +"печать влияет на B<write>(2) и B<fallocate>(2) (только для флага " +"B<FALLOC_FL_PUNCH_HOLE>). Эти вызовы завершаются ошибкой B<EPERM>. Кроме " +"этого, попытка создать новое общее, доступное на запись отображение через " +"B<mmap>(2) также завершится ошибкой B<EPERM>." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Using the B<F_ADD_SEALS> operation to set the B<F_SEAL_WRITE> seal fails " +"with B<EBUSY> if any writable, shared mapping exists. Such mappings must be " +"unmapped before you can add this seal. Furthermore, if there are any " +"asynchronous I/O operations (B<io_submit>(2)) pending on the file, all " +"outstanding writes will be discarded." +msgstr "" +"Использование операции B<F_ADD_SEALS> для установки B<F_SEAL_WRITE> " +"завершается ошибкой B<EBUSY>, если существует доступное на запись общее " +"отображение. Такие отображения должны быть удалены перед добавлением данной " +"печати. Кроме этого, если у файла есть асинхронные операции, ожидающие ввода-" +"вывода (B<io_submit>(2)), то все отложенные операции записи будут отброшены." + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B<F_SEAL_FUTURE_WRITE> (since Linux 5.1)" +msgstr "B<F_SEAL_FUTURE_WRITE> (начиная с Linux 5.1)" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"The effect of this seal is similar to B<F_SEAL_WRITE>, but the contents of " +"the file can still be modified via shared writable mappings that were " +"created prior to the seal being set. Any attempt to create a new writable " +"mapping on the file via B<mmap>(2) will fail with B<EPERM>. Likewise, an " +"attempt to write to the file via B<write>(2) will fail with B<EPERM>." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Using this seal, one process can create a memory buffer that it can continue " +"to modify while sharing that buffer on a \"read-only\" basis with other " +"processes." +msgstr "" + +#. type: SS +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "File read/write hints" +msgstr "Подсказки чтения/записи файла" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Write lifetime hints can be used to inform the kernel about the relative " +"expected lifetime of writes on a given inode or via a particular open file " +"description. (See B<open>(2) for an explanation of open file " +"descriptions.) In this context, the term \"write lifetime\" means the " +"expected time the data will live on media, before being overwritten or " +"erased." +msgstr "" +"Подсказки срока службы записи можно использовать для уведомления ядра об " +"относительно ожидаемом сроке службы записи заданной иноды и открытого " +"файлового описания (об открытых файловых описаниях читайте в B<open>(2)). В " +"этом контексте термин «срок службы записи» (write lifetime) означает " +"ожидаемое время, которое будут существовать данные на носителе до их " +"перезаписи или стирания." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"An application may use the different hint values specified below to separate " +"writes into different write classes, so that multiple users or applications " +"running on a single storage back-end can aggregate their I/O patterns in a " +"consistent manner. However, there are no functional semantics implied by " +"these flags, and different I/O classes can use the write lifetime hints in " +"arbitrary ways, so long as the hints are used consistently." +msgstr "" +"В приложении можно использовать различные значения подсказок, перечисленные " +"ниже, для разделения записей на различные классы, чтобы несколько " +"пользователей или приложений, работающие на одном аппаратном хранилище могли " +"объединить свои шаблоны ввода-вывода в непротиворечивую форму. Однако, для " +"флагов не подразумевается какая-то функциональная семантика, и для различных " +"классов ввода-вывода можно использовать подсказки срока службы записи " +"произвольным образом, пока подсказки не противоречат друг другу." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "The following operations can be applied to the file descriptor, I<fd>:" +msgstr "Следующие операции могут применяться к файловому дескриптору I<fd>:" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B<F_GET_RW_HINT> (I<uint64_t *>; since Linux 4.13)" +msgstr "B<F_GET_RW_HINT> (I<uint64_t *>; начиная с Linux 4.13)" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Returns the value of the read/write hint associated with the underlying " +"inode referred to by I<fd>." +msgstr "" +"Возвращает значение подсказки чтения/записи, связанной с инодой, на которую " +"указывает I<fd>." + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B<F_SET_RW_HINT> (I<uint64_t *>; since Linux 4.13)" +msgstr "B<F_SET_RW_HINT> (I<uint64_t *>; начиная с Linux 4.13)" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Sets the read/write hint value associated with the underlying inode referred " +"to by I<fd>. This hint persists until either it is explicitly modified or " +"the underlying filesystem is unmounted." +msgstr "" +"Изменяет значение подсказки чтения/записи, связанной с инодой, на которую " +"указывает I<fd>. Данная подсказка действует до тех пор, пока не будет явно " +"изменена или не будет размонтирована нижележащая файловая система." + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B<F_GET_FILE_RW_HINT> (I<uint64_t *>; since Linux 4.13)" +msgstr "B<F_GET_FILE_RW_HINT> (I<uint64_t *>; начиная с Linux 4.13)" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Returns the value of the read/write hint associated with the open file " +"description referred to by I<fd>." +msgstr "" +"Возвращает значение подсказки чтения/записи, связанной с открытым файловым " +"описанием, на которое указывает I<fd>." + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B<F_SET_FILE_RW_HINT> (I<uint64_t *>; since Linux 4.13)" +msgstr "B<F_SET_FILE_RW_HINT> (I<uint64_t *>; начиная с Linux 4.13)" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Sets the read/write hint value associated with the open file description " +"referred to by I<fd>." +msgstr "" +"Изменяет значение подсказки чтения/записи, связанной с открытым файловым " +"описанием, на которое указывает I<fd>." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"If an open file description has not been assigned a read/write hint, then it " +"shall use the value assigned to the inode, if any." +msgstr "" +"Если открытому файловому описанию не была назначена подсказка чтения/записи, " +"то будет использоваться значение (если есть), назначенное иноде." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "The following read/write hints are valid since Linux 4.13:" +msgstr "Начиная с Linux 4.13, действуют следующие подсказки чтения/записи:" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B<RWH_WRITE_LIFE_NOT_SET>" +msgstr "B<RWH_WRITE_LIFE_NOT_SET>" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "No specific hint has been set. This is the default value." +msgstr "Подсказка не задана. Это значение по умолчанию." + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B<RWH_WRITE_LIFE_NONE>" +msgstr "B<RWH_WRITE_LIFE_NONE>" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "No specific write lifetime is associated with this file or inode." +msgstr "Срока службы записи, связанного с этим файлом или инодой, не задано." + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B<RWH_WRITE_LIFE_SHORT>" +msgstr "B<RWH_WRITE_LIFE_SHORT>" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Data written to this inode or via this open file description is expected to " +"have a short lifetime." +msgstr "" +"Ожидается, что данные, записанные в эту иноду или через открытое файловое " +"описание, будут иметь короткий срок службы." + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B<RWH_WRITE_LIFE_MEDIUM>" +msgstr "B<RWH_WRITE_LIFE_MEDIUM>" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Data written to this inode or via this open file description is expected to " +"have a lifetime longer than data written with B<RWH_WRITE_LIFE_SHORT>." +msgstr "" +"Ожидается, что данные, записанные в эту иноду или через открытое файловое " +"описание, будут иметь срок службы длиннее, чем данные, записанные с " +"B<RWH_WRITE_LIFE_SHORT>." + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B<RWH_WRITE_LIFE_LONG>" +msgstr "B<RWH_WRITE_LIFE_LONG>" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Data written to this inode or via this open file description is expected to " +"have a lifetime longer than data written with B<RWH_WRITE_LIFE_MEDIUM>." +msgstr "" +"Ожидается, что данные, записанные в эту иноду или через открытое файловое " +"описание, будут иметь срок службы длиннее, чем данные, записанные с " +"B<RWH_WRITE_LIFE_MEDIUM>." + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B<RWH_WRITE_LIFE_EXTREME>" +msgstr "B<RWH_WRITE_LIFE_EXTREME>" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Data written to this inode or via this open file description is expected to " +"have a lifetime longer than data written with B<RWH_WRITE_LIFE_LONG>." +msgstr "" +"Ожидается, что данные, записанные в эту иноду или через открытое файловое " +"описание, будут иметь срок службы длиннее, чем данные, записанные с " +"B<RWH_WRITE_LIFE_LONG>." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"All the write-specific hints are relative to each other, and no individual " +"absolute meaning should be attributed to them." +msgstr "" +"Все подсказки записи соотносятся друг с другом и нет отдельного абсолютного " +"смысла им предписываемого." + +#. type: SH +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "RETURN VALUE" +msgstr "ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "For a successful call, the return value depends on the operation:" +msgstr "" +"При успешном выполнении возвращаемое значение зависит от используемой " +"команды:" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B<F_DUPFD>" +msgstr "B<F_DUPFD>" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "The new file descriptor." +msgstr "Новый файловый дескриптор." + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B<F_GETFD>" +msgstr "B<F_GETFD>" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "Value of file descriptor flags." +msgstr "Значение флагов файлового дескриптора." + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B<F_GETFL>" +msgstr "B<F_GETFL>" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "Value of file status flags." +msgstr "Значение флагов состояния файла." + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B<F_GETLEASE>" +msgstr "B<F_GETLEASE>" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "Type of lease held on file descriptor." +msgstr "Тип аренды, установленной на файлом дескрипторе." + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B<F_GETOWN>" +msgstr "B<F_GETOWN>" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "Value of file descriptor owner." +msgstr "Значение, представляющее собой владельца файлового дескриптора." + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B<F_GETSIG>" +msgstr "B<F_GETSIG>" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Value of signal sent when read or write becomes possible, or zero for " +"traditional B<SIGIO> behavior." +msgstr "" +"Значение сигнала, посылаемого когда становится возможным чтение или запись " +"или ноль для традиционного поведения B<SIGIO>." + +#. type: TP +#: archlinux fedora-40 fedora-rawhide mageia-cauldron +#, fuzzy, no-wrap +#| msgid "B<F_GETLEASE>" +msgid "B<F_GETPIPE_SZ>" +msgstr "B<F_GETLEASE>" + +#. type: TQ +#: archlinux fedora-40 fedora-rawhide mageia-cauldron +#, fuzzy, no-wrap +#| msgid "B<EPIPE>" +msgid "B<F_SETPIPE_SZ>" +msgstr "B<EPIPE>" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "The pipe capacity." +msgstr "Ёмкость канала." + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B<F_GET_SEALS>" +msgstr "B<F_GET_SEALS>" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"A bit mask identifying the seals that have been set for the inode referred " +"to by I<fd>." +msgstr "Битовая маска, описывающая печати inode, на которую указывает I<fd>." + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "All other commands" +msgstr "Все остальные команды" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "Zero." +msgstr "Ноль." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "On error, -1 is returned, and I<errno> is set to indicate the error." +msgstr "" +"В случае ошибки возвращается -1, а I<errno> устанавливается в значение " +"ошибки." + +#. type: SH +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "ERRORS" +msgstr "ОШИБКИ" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B<EACCES> or B<EAGAIN>" +msgstr "B<EACCES> или B<EAGAIN>" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "Operation is prohibited by locks held by other processes." +msgstr "" +"Операция запрещена блокировками, которые удерживаются другими процессами." + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B<EAGAIN>" +msgstr "B<EAGAIN>" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"The operation is prohibited because the file has been memory-mapped by " +"another process." +msgstr "" +"Операция запрещена, потому что файл отображается в память другим процессом." + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B<EBADF>" +msgstr "B<EBADF>" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "I<fd> is not an open file descriptor" +msgstr "Значение I<fd> не является открытым файловым дескриптором." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"I<cmd> is B<F_SETLK> or B<F_SETLKW> and the file descriptor open mode " +"doesn't match with the type of lock requested." +msgstr "" +"Значение I<cmd> равно B<F_SETLK> или B<F_SETLKW>, но режим открытия " +"файлового дескриптора не совпадает с типом запрошенной блокировки." + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B<EBUSY>" +msgstr "B<EBUSY>" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"I<cmd> is B<F_SETPIPE_SZ> and the new pipe capacity specified in I<arg> is " +"smaller than the amount of buffer space currently used to store data in the " +"pipe." +msgstr "" +"Значение I<cmd> равно B<F_SETPIPE_SZ> и новая ёмкость канала, указанная в " +"I<arg>, меньше размера буферного пространства, используемого в данный момент " +"для хранения данных в канале." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"I<cmd> is B<F_ADD_SEALS>, I<arg> includes B<F_SEAL_WRITE>, and there exists " +"a writable, shared mapping on the file referred to by I<fd>." +msgstr "" +"Значение I<cmd> равно B<F_ADD_SEALS>, в I<arg> содержится B<F_SEAL_WRITE> и " +"существует доступное на запись, общее отображение файла, на который " +"указывает I<fd>." + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B<EDEADLK>" +msgstr "B<EDEADLK>" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"It was detected that the specified B<F_SETLKW> command would cause a " +"deadlock." +msgstr "" +"Было обнаружено, что указанная команда B<F_SETLKW> привела бы к взаимной " +"блокировке (deadlock)." + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B<EFAULT>" +msgstr "B<EFAULT>" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "I<lock> is outside your accessible address space." +msgstr "" +"Значение I<lock> находится за пределами доступного адресного пространства." + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B<EINTR>" +msgstr "B<EINTR>" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"I<cmd> is B<F_SETLKW> or B<F_OFD_SETLKW> and the operation was interrupted " +"by a signal; see B<signal>(7)." +msgstr "" +"Значение I<cmd> равно B<F_SETLKW> или B<F_OFD_SETLKW> и операция была " +"прервана сигналом; смотрите B<signal>(7))." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"I<cmd> is B<F_GETLK>, B<F_SETLK>, B<F_OFD_GETLK>, or B<F_OFD_SETLK>, and the " +"operation was interrupted by a signal before the lock was checked or " +"acquired. Most likely when locking a remote file (e.g., locking over NFS), " +"but can sometimes happen locally." +msgstr "" +"Значение I<cmd> равно B<F_GETLK>, B<F_SETLK>, B<F_OFD_GETLK> или " +"B<F_OFD_SETLK> и операция была прервана сигналом перед тем как блокировка " +"была проверена или установлена. Большинство таких ошибок случается при " +"блокировке удалённого файла (например, блокировка через NFS), но иногда " +"такое может случаться и с локальным файлом." + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B<EINVAL>" +msgstr "B<EINVAL>" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "The value specified in I<cmd> is not recognized by this kernel." +msgstr "Значение I<cmd> не распознано ядром." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"I<cmd> is B<F_ADD_SEALS> and I<arg> includes an unrecognized sealing bit." +msgstr "" +"Значение I<cmd> равно B<F_ADD_SEALS> и I<arg> содержит бит не распознанной " +"печати." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"I<cmd> is B<F_ADD_SEALS> or B<F_GET_SEALS> and the filesystem containing the " +"inode referred to by I<fd> does not support sealing." +msgstr "" +"Значение I<cmd> равно B<F_ADD_SEALS> или B<F_GET_SEALS> и файловая система, " +"содержащая inode, на которую указывает I<fd>, не поддерживает опечатывание." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"I<cmd> is B<F_DUPFD> and I<arg> is negative or is greater than the maximum " +"allowable value (see the discussion of B<RLIMIT_NOFILE> in B<getrlimit>(2))." +msgstr "" +"Значение I<cmd> равно B<F_DUPFD> и значение I<arg> отрицательное или больше " +"максимально возможного значения (смотрите описание B<RLIMIT_NOFILE> в " +"B<getrlimit>(2))." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "I<cmd> is B<F_SETSIG> and I<arg> is not an allowable signal number." +msgstr "" +"Значение I<cmd> равно B<F_SETSIG> и значение I<arg> не содержит допустимый " +"номер сигнала." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"I<cmd> is B<F_OFD_SETLK>, B<F_OFD_SETLKW>, or B<F_OFD_GETLK>, and I<l_pid> " +"was not specified as zero." +msgstr "" +"Значение I<cmd> равно B<F_OFD_SETLK>, B<F_OFD_SETLKW> или B<F_OFD_GETLK>, но " +"значение I<l_pid> не равно нулю." + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B<EMFILE>" +msgstr "B<EMFILE>" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"I<cmd> is B<F_DUPFD> and the per-process limit on the number of open file " +"descriptors has been reached." +msgstr "" +"Значение I<cmd> равно B<F_DUPFD> и было достигнуто ограничение по количеству " +"открытых файловых дескрипторов на процесс." + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B<ENOLCK>" +msgstr "B<ENOLCK>" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Too many segment locks open, lock table is full, or a remote locking " +"protocol failed (e.g., locking over NFS)." +msgstr "" +"Открыто слишком много блокировок сегментов, таблица блокировок заполнена или " +"ошибка протокола удалённой блокировки (например, при блокировке через NFS)." + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B<ENOTDIR>" +msgstr "B<ENOTDIR>" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"B<F_NOTIFY> was specified in I<cmd>, but I<fd> does not refer to a directory." +msgstr "Значение I<cmd> равно B<F_NOTIFY>, I<fd> не ссылается на каталог." + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B<EPERM>" +msgstr "B<EPERM>" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"I<cmd> is B<F_SETPIPE_SZ> and the soft or hard user pipe limit has been " +"reached; see B<pipe>(7)." +msgstr "" +"Значение I<cmd> равно B<F_SETPIPE_SZ> и достигнуто мягкое или жёсткое " +"ограничение канала пользователя; смотрите B<pipe>(7)." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Attempted to clear the B<O_APPEND> flag on a file that has the append-only " +"attribute set." +msgstr "" +"Попытка сбросить флаг B<O_APPEND> на файле, который открыт с атрибутом " +"только для добавления." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"I<cmd> was B<F_ADD_SEALS>, but I<fd> was not open for writing or the current " +"set of seals on the file already includes B<F_SEAL_SEAL>." +msgstr "" +"Значение I<cmd> равно B<F_ADD_SEALS>, но I<fd> не открыт на запись или " +"текущий набор печатей файла уже содержит B<F_SEAL_SEAL>." + +#. type: SH +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "STANDARDS" +msgstr "СТАНДАРТЫ" + +#. type: Plain text +#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron +#: opensuse-leap-15-6 opensuse-tumbleweed +msgid "POSIX.1-2008." +msgstr "POSIX.1-2008." + +#. #-#-#-#-# archlinux: fcntl.2.pot (PACKAGE VERSION) #-#-#-#-# +#. .P +#. SVr4 documents additional EIO, ENOLINK and EOVERFLOW error conditions. +#. type: Plain text +#. #-#-#-#-# debian-bookworm: fcntl.2.pot (PACKAGE VERSION) #-#-#-#-# +#. .PP +#. SVr4 documents additional EIO, ENOLINK and EOVERFLOW error conditions. +#. type: Plain text +#. #-#-#-#-# debian-unstable: fcntl.2.pot (PACKAGE VERSION) #-#-#-#-# +#. .PP +#. SVr4 documents additional EIO, ENOLINK and EOVERFLOW error conditions. +#. type: Plain text +#. #-#-#-#-# fedora-40: fcntl.2.pot (PACKAGE VERSION) #-#-#-#-# +#. .P +#. SVr4 documents additional EIO, ENOLINK and EOVERFLOW error conditions. +#. type: Plain text +#. #-#-#-#-# fedora-rawhide: fcntl.2.pot (PACKAGE VERSION) #-#-#-#-# +#. .P +#. SVr4 documents additional EIO, ENOLINK and EOVERFLOW error conditions. +#. type: Plain text +#. #-#-#-#-# mageia-cauldron: fcntl.2.pot (PACKAGE VERSION) #-#-#-#-# +#. .P +#. SVr4 documents additional EIO, ENOLINK and EOVERFLOW error conditions. +#. type: Plain text +#. #-#-#-#-# opensuse-leap-15-6: fcntl.2.pot (PACKAGE VERSION) #-#-#-#-# +#. .PP +#. SVr4 documents additional EIO, ENOLINK and EOVERFLOW error conditions. +#. type: Plain text +#. #-#-#-#-# opensuse-tumbleweed: fcntl.2.pot (PACKAGE VERSION) #-#-#-#-# +#. .PP +#. SVr4 documents additional EIO, ENOLINK and EOVERFLOW error conditions. +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"B<F_GETOWN_EX>, B<F_SETOWN_EX>, B<F_SETPIPE_SZ>, B<F_GETPIPE_SZ>, " +"B<F_GETSIG>, B<F_SETSIG>, B<F_NOTIFY>, B<F_GETLEASE>, and B<F_SETLEASE> are " +"Linux-specific. (Define the B<_GNU_SOURCE> macro to obtain these " +"definitions.)" +msgstr "" +"Команды B<F_GETOWN_EX>, B<F_SETOWN_EX>, B<F_SETPIPE_SZ>, B<F_GETPIPE_SZ>, " +"B<F_GETSIG>, B<F_SETSIG>, B<F_NOTIFY>, B<F_GETLEASE> и B<F_SETLEASE> есть " +"только в Linux. Для задействования этих определений определите макрос " +"B<_GNU_SOURCE>." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"B<F_OFD_SETLK>, B<F_OFD_SETLKW>, and B<F_OFD_GETLK> are Linux-specific (and " +"one must define B<_GNU_SOURCE> to obtain their definitions), but work is " +"being done to have them included in the next version of POSIX.1." +msgstr "" +"Значения B<F_OFD_SETLK>, B<F_OFD_SETLKW> и B<F_OFD_GETLK> есть только в " +"Linux (и для получения их определений нужно определить B<_GNU_SOURCE>), но " +"ведётся работа по их включению в следующую версию POSIX.1." + +#. FIXME . Once glibc adds support, add a note about FTM requirements +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "B<F_ADD_SEALS> and B<F_GET_SEALS> are Linux-specific." +msgstr "Значения B<F_ADD_SEALS> и B<F_GET_SEALS> есть только в Linux." + +#. type: SH +#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron +#: opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "HISTORY" +msgstr "ИСТОРИЯ" + +#. type: Plain text +#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron +#: opensuse-leap-15-6 opensuse-tumbleweed +msgid "SVr4, 4.3BSD, POSIX.1-2001." +msgstr "SVr4, 4.3BSD, POSIX.1-2001." + +#. type: Plain text +#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron +#: opensuse-leap-15-6 opensuse-tumbleweed +#, fuzzy +#| msgid "" +#| "SVr4, 4.3BSD, POSIX.1-2001. Only the operations B<F_DUPFD>, B<F_GETFD>, " +#| "B<F_SETFD>, B<F_GETFL>, B<F_SETFL>, B<F_GETLK>, B<F_SETLK>, and " +#| "B<F_SETLKW> are specified in POSIX.1-2001." +msgid "" +"Only the operations B<F_DUPFD>, B<F_GETFD>, B<F_SETFD>, B<F_GETFL>, " +"B<F_SETFL>, B<F_GETLK>, B<F_SETLK>, and B<F_SETLKW> are specified in " +"POSIX.1-2001." +msgstr "" +"SVr4, 4.3BSD, POSIX.1-2001. В POSIX.1-2001 указаны только команды " +"B<F_DUPFD>, B<F_GETFD>, B<F_SETFD>, B<F_GETFL>, B<F_SETFL>, B<F_GETLK>, " +"B<F_SETLK> и B<F_SETLKW>." + +#. .BR _BSD_SOURCE , +#. or +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"B<F_GETOWN> and B<F_SETOWN> are specified in POSIX.1-2001. (To get their " +"definitions, define either B<_XOPEN_SOURCE> with the value 500 or greater, " +"or B<_POSIX_C_SOURCE> with the value 200809L or greater.)" +msgstr "" +"Значения B<F_GETOWN> и B<F_SETOWN> определены в POSIX.1-2001. Для получения " +"их определений, определите B<_XOPEN_SOURCE> со значением 500 или больше или " +"B<_POSIX_C_SOURCE> со значением 200809L или больше." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"B<F_DUPFD_CLOEXEC> is specified in POSIX.1-2008. (To get this definition, " +"define B<_POSIX_C_SOURCE> with the value 200809L or greater, or " +"B<_XOPEN_SOURCE> with the value 700 or greater.)" +msgstr "" +"B<F_DUPFD_CLOEXEC> указана в POSIX.1-2008. Для получения определения, " +"определите B<_POSIX_C_SOURCE> со значением 200809L или больше, или " +"B<_XOPEN_SOURCE> со значением 700 или больше." + +#. 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 "" +"The errors returned by B<dup2>(2) are different from those returned by " +"B<F_DUPFD>." +msgstr "" +"Ошибки, возвращаемые B<dup2>(2), отличаются от тех, что возвращаются при " +"B<F_DUPFD>." + +#. type: SS +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "File locking" +msgstr "Файловая блокировка" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"The original Linux B<fcntl>() system call was not designed to handle large " +"file offsets (in the I<flock> structure). Consequently, an B<fcntl64>() " +"system call was added in Linux 2.4. The newer system call employs a " +"different structure for file locking, I<flock64>, and corresponding " +"commands, B<F_GETLK64>, B<F_SETLK64>, and B<F_SETLKW64>. However, these " +"details can be ignored by applications using glibc, whose B<fcntl>() " +"wrapper function transparently employs the more recent system call where it " +"is available." +msgstr "" +"Первоначальная версия системного вызова B<fcntl>() в Linux не умела работать " +"с большими файловыми смещениями (в структуре I<flock>). Позднее, в Linux 2.4 " +"был добавлен системный вызов B<fcntl64>(). Новый системный вызов использует " +"другую структуру для блокировки файлов — I<flock64> и соответствующие " +"команды — B<F_GETLK64>, B<F_SETLK64> и B<F_SETLKW64>. Однако, это различие " +"может игнорироваться приложениями, которые используют glibc, так как " +"имеющаяся в ней обёрточная функция B<fcntl>() самостоятельно задействует " +"более новый системный вызов, если он доступен." + +#. type: SS +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "Record locks" +msgstr "Обычные блокировки (Record locks)" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, fuzzy +#| msgid "" +#| "Since kernel 2.0, there is no interaction between the types of lock " +#| "placed by B<flock>(2) and B<fcntl>()." +msgid "" +"Since Linux 2.0, there is no interaction between the types of lock placed by " +"B<flock>(2) and B<fcntl>()." +msgstr "" +"Начиная с ядра 2.0, не существует разницы между типами блокировки, которые " +"осуществляют B<flock>(2) и B<fcntl>()." + +#. e.g., Solaris 8 documents this field in fcntl(2), and Irix 6.5 +#. documents it in fcntl(5). mtk, May 2007 +#. Also, FreeBSD documents it (Apr 2014). +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Several systems have more fields in I<struct flock> such as, for example, " +"I<l_sysid> (to identify the machine where the lock is held). Clearly, " +"I<l_pid> alone is not going to be very useful if the process holding the " +"lock may live on a different machine; on Linux, while present on some " +"architectures (such as MIPS32), this field is not used." +msgstr "" +"Некоторые системы имеют дополнительные поля в структуре I<struct flock>, " +"например, I<l_sysid> (признак машины, на которой удерживается блокировка). " +"Вообще говоря, один I<l_pid> не очень полезен, если процесс, удерживающий " +"блокировку, может работать на другой машине; в Linux, хотя это поле и есть " +"на некоторых архитектурах (например, MIPS32), но оно не используется." + +#. type: SS +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "Record locking and NFS" +msgstr "Блокировка и NFS" + +#. Neil Brown: With NFSv3 the failure mode is the reverse. If +#. the server loses contact with a client then any lock stays in place +#. indefinitely ("why can't I read my mail"... I remember it well). +#. Jeff Layton: +#. Note that this is not a firm timeout. The server runs a job +#. periodically to clean out expired stateful objects, and it's likely +#. that there is some time (maybe even up to another whole lease period) +#. between when the timeout expires and the job actually runs. If the +#. client gets a RENEW in there within that window, its lease will be +#. renewed and its state preserved. +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Before Linux 3.12, if an NFSv4 client loses contact with the server for a " +"period of time (defined as more than 90 seconds with no communication), it " +"might lose and regain a lock without ever being aware of the fact. (The " +"period of time after which contact is assumed lost is known as the NFSv4 " +"leasetime. On a Linux NFS server, this can be determined by looking at I</" +"proc/fs/nfsd/nfsv4leasetime>, which expresses the period in seconds. The " +"default value for this file is 90.) This scenario potentially risks data " +"corruption, since another process might acquire a lock in the intervening " +"period and perform file I/O." +msgstr "" +"До Linux 3.12, если клиент NFSv4 теряет связь с сервером на некоторый период " +"времени (более 90 секунд), то он может потерять и перезапросить блокировки " +"даже не зная об этом (период времени, после которого контакт предполагается " +"потерянным в NFSv4 называется время аренды (leasetime). У Linux в сервере " +"NFS его можно узнать по значению в I</proc/fs/nfsd/nfsv4leasetime>, которое " +"отражает период в секундах. В этом файле значение по умолчанию равно 90). " +"Данный сценарий несёт потенциальный риск повреждения данных, так как в этот " +"перерыв другой процесс может установить блокировку и выполнить файловый ввод-" +"вывод." + +#. commit ef1820f9be27b6ad158f433ab38002ab8131db4d +#. commit f6de7a39c181dfb8a2c534661a53c73afb3081cd +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Since Linux 3.12, if an NFSv4 client loses contact with the server, any I/O " +"to the file by a process which \"thinks\" it holds a lock will fail until " +"that process closes and reopens the file. A kernel parameter, I<nfs." +"recover_lost_locks>, can be set to 1 to obtain the pre-3.12 behavior, " +"whereby the client will attempt to recover lost locks when contact is " +"reestablished with the server. Because of the attendant risk of data " +"corruption, this parameter defaults to 0 (disabled)." +msgstr "" +"Начиная с Linux 3.12, если клиент NFSv4 теряет контакт с сервером, то любой " +"файловый ввод-вывод, выполняемый процессом, который «думает», что имеет " +"блокировку, будет завершаться с ошибкой до тех пор, пока этот процесс не " +"закроет и не переоткроет файл. Чтобы вернуть поведение, которое было до " +"версии pre-3.12, можно параметру ядра I<nfs.recover_lost_locks> присвоить " +"значение 1, из-за чего клиент буде пытаться восстановить потерянные " +"блокировки при переустановлении связи с сервером. Из-за наличия " +"сопутствующего риска повреждения данных, значение данного параметра по " +"умолчанию равно 0 (отключено)." + +#. type: SH +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "BUGS" +msgstr "ДЕФЕКТЫ" + +#. type: SS +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "F_SETFL" +msgstr "F_SETFL" + +#. FIXME . According to POSIX.1-2001, O_SYNC should also be modifiable +#. via fcntl(2), but currently Linux does not permit this +#. See http://bugzilla.kernel.org/show_bug.cgi?id=5994 +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"It is not possible to use B<F_SETFL> to change the state of the B<O_DSYNC> " +"and B<O_SYNC> flags. Attempts to change the state of these flags are " +"silently ignored." +msgstr "" +"Невозможно использовать B<F_SETFL> для смены состояния флагов B<O_DSYNC> и " +"B<O_SYNC>. Попытка изменить состояние этих флагов просто игнорируется." + +#. type: SS +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "F_GETOWN" +msgstr "F_GETOWN" + +#. glibc source: sysdeps/unix/sysv/linux/i386/sysdep.h +#. mtk, Dec 04: some limited testing on alpha and ia64 seems to +#. indicate that ANY negative PGID value will cause F_GETOWN +#. to misinterpret the return as an error. Some other architectures +#. seem to have the same range check as i386. +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, fuzzy +#| msgid "" +#| "A limitation of the Linux system call conventions on some architectures " +#| "(notably i386) means that if a (negative) process group ID to be " +#| "returned by B<F_GETOWN> falls in the range -1 to -4095, then the return " +#| "value is wrongly interpreted by glibc as an error in the system call; " +#| "that is, the return value of B<fcntl>() will be -1, and I<errno> will " +#| "contain the (positive) process group ID. The Linux-specific " +#| "B<F_GETOWN_EX> operation avoids this problem. Since glibc version 2.11, " +#| "glibc makes the kernel B<F_GETOWN> problem invisible by implementing " +#| "B<F_GETOWN> using B<F_GETOWN_EX>." +msgid "" +"A limitation of the Linux system call conventions on some architectures " +"(notably i386) means that if a (negative) process group ID to be returned " +"by B<F_GETOWN> falls in the range -1 to -4095, then the return value is " +"wrongly interpreted by glibc as an error in the system call; that is, the " +"return value of B<fcntl>() will be -1, and I<errno> will contain the " +"(positive) process group ID. The Linux-specific B<F_GETOWN_EX> operation " +"avoids this problem. Since glibc 2.11, glibc makes the kernel B<F_GETOWN> " +"problem invisible by implementing B<F_GETOWN> using B<F_GETOWN_EX>." +msgstr "" +"Ограничение в соглашениях по системным вызовам Linux на некоторых " +"архитектурах (в частности i386) приводит к тому, что если значение ID группы " +"процесса (отрицательное), возвращаемое по команде B<F_GETOWN>, попадает в " +"диапазон от -1 до -4095, то оно неправильно интерпретируется glibc и " +"считается ошибкой в системном вызове; то есть возвращаемое значение " +"B<fcntl>() будет равно -1, а I<errno> будет содержать значение ID группы " +"процесса (положительное). Команда B<F_GETOWN_EX> (есть только в Linux) не " +"подвержена этой проблеме. Начиная с glibc версии 2.11, glibc делает проблему " +"для B<F_GETOWN> невидимой, реализовав B<F_GETOWN> с помощью B<F_GETOWN_EX>." + +#. type: SS +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "F_SETOWN" +msgstr "F_SETOWN" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"In Linux 2.4 and earlier, there is bug that can occur when an unprivileged " +"process uses B<F_SETOWN> to specify the owner of a socket file descriptor as " +"a process (group) other than the caller. In this case, B<fcntl>() can " +"return -1 with I<errno> set to B<EPERM>, even when the owner process (group) " +"is one that the caller has permission to send signals to. Despite this " +"error return, the file descriptor owner is set, and signals will be sent to " +"the owner." +msgstr "" +"В Linux 2.4 и более раннем, есть ошибка, которая может произойти когда " +"непривилегированный процесс использует B<F_SETOWN> для задания владельца " +"дескриптора файла сокета как процесса (группу) отличного от вызывающего. В " +"этом случае B<fcntl>() может вернуть -1 с I<errno> равным B<EPERM>, даже " +"когда процесс (группа) владелец такая же как и вызывающий имеет право " +"посылать сигнал. Несмотря на возвращаемую ошибку, владелец файлового " +"дескриптора всё равно устанавливается и сигналы будут посылаться владельцу." + +#. type: SS +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "Deadlock detection" +msgstr "Обнаружение взаимных блокировок (deadlock)" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"The deadlock-detection algorithm employed by the kernel when dealing with " +"B<F_SETLKW> requests can yield both false negatives (failures to detect " +"deadlocks, leaving a set of deadlocked processes blocked indefinitely) and " +"false positives (B<EDEADLK> errors when there is no deadlock). For example, " +"the kernel limits the lock depth of its dependency search to 10 steps, " +"meaning that circular deadlock chains that exceed that size will not be " +"detected. In addition, the kernel may falsely indicate a deadlock when two " +"or more processes created using the B<clone>(2) B<CLONE_FILES> flag place " +"locks that appear (to the kernel) to conflict." +msgstr "" +"Алгоритм обнаружения взаимных блокировок задействуется ядром при работе с " +"запросами B<F_SETLKW> и может закончиться как ненахождением (не удалось " +"обнаружить взаимную блокировку и процессы блокируют друг друга навсегда), " +"так и ошибочным нахождением (ошибка B<EDEADLK>, но взаимная блокировка " +"отсутствует). Например, ограничение ядра на вложенность зависимостей " +"блокировки при поиске равна 10, что означает, что цепочки циклических " +"зависимостей, превышающие этот размер, не будут обнаружены. Также ядро может " +"ошибочно посчитать за взаимную блокировку ситуацию, когда два и более " +"процесса, созданных с помощью B<clone>(2) с флагом B<CLONE_FILES>, размещают " +"блокировки, которые похожи (для ядра) на конфликтующие." + +#. http://marc.info/?l=linux-kernel&m=119013491707153&w=2 +#. Reconfirmed by Jeff Layton +#. From: Jeff Layton <jlayton <at> redhat.com> +#. Subject: Re: Status of fcntl() mandatory locking +#. Newsgroups: gmane.linux.file-systems +#. Date: 2014-04-28 10:07:57 GMT +#. http://thread.gmane.org/gmane.linux.file-systems/84481/focus=84518 +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"The Linux implementation of mandatory locking is subject to race conditions " +"which render it unreliable: a B<write>(2) call that overlaps with a lock " +"may modify data after the mandatory lock is acquired; a B<read>(2) call " +"that overlaps with a lock may detect changes to data that were made only " +"after a write lock was acquired. Similar races exist between mandatory " +"locks and B<mmap>(2). It is therefore inadvisable to rely on mandatory " +"locking." +msgstr "" +"Реализация обязательной блокировки в Linux проводит к состязательности " +"процессов, что делает её ненадёжной: вызов B<write>(2), пересекающийся с " +"блокировкой, может изменить данные после установления обязательной " +"блокировки; вызов B<read>(2), пересекающийся с блокировкой, может обнаружить " +"изменившиеся данные, которые были внесены уже установления блокировки на " +"запись. Подобная состязательность существует между обязательными " +"блокировками и B<mmap>(2). Поэтому нецелесообразно полагаться на " +"обязательную блокировку." + +#. 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<dup2>(2), B<flock>(2), B<open>(2), B<socket>(2), B<lockf>(3), " +"B<capabilities>(7), B<feature_test_macros>(7), B<lslocks>(8)" +msgstr "" +"B<dup2>(2), B<flock>(2), B<open>(2), B<socket>(2), B<lockf>(3), " +"B<capabilities>(7), B<feature_test_macros>(7), B<lslocks>(8)" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"I<locks.txt>, I<mandatory-locking.txt>, and I<dnotify.txt> in the Linux " +"kernel source directory I<Documentation/filesystems/> (on older kernels, " +"these files are directly under the I<Documentation/> directory, and " +"I<mandatory-locking.txt> is called I<mandatory.txt>)" +msgstr "" +"Файлы I<locks.txt>, I<mandatory-locking.txt> и I<dnotify.txt> из каталога " +"I<Documentation/filesystems.> исходного кода ядра Linux (в старых ядрах эти " +"файлы были в каталоге I<Documentation/>, а I<mandatory-locking.txt> " +"назывался I<mandatory.txt>)." + +#. 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: TP +#: debian-bookworm debian-unstable opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B<F_GETPIPE_SZ>, B<F_SETPIPE_SZ>" +msgstr "B<F_GETPIPE_SZ>, B<F_SETPIPE_SZ>" + +#. type: Plain text +#: debian-bookworm +msgid "" +"SVr4, 4.3BSD, POSIX.1-2001. Only the operations B<F_DUPFD>, B<F_GETFD>, " +"B<F_SETFD>, B<F_GETFL>, B<F_SETFL>, B<F_GETLK>, B<F_SETLK>, and B<F_SETLKW> " +"are specified in POSIX.1-2001." +msgstr "" +"SVr4, 4.3BSD, POSIX.1-2001. В POSIX.1-2001 указаны только команды " +"B<F_DUPFD>, B<F_GETFD>, B<F_SETFD>, B<F_GETFL>, B<F_SETFL>, B<F_GETLK>, " +"B<F_SETLK> и B<F_SETLKW>." + +#. type: TH +#: debian-unstable opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "2023-03-30" +msgstr "30 марта 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 "Linux man-pages 6.04" +msgstr "Linux man-pages 6.04" |