summaryrefslogtreecommitdiffstats
path: root/po/ru/man2/close_range.2.po
diff options
context:
space:
mode:
Diffstat (limited to 'po/ru/man2/close_range.2.po')
-rw-r--r--po/ru/man2/close_range.2.po794
1 files changed, 794 insertions, 0 deletions
diff --git a/po/ru/man2/close_range.2.po b/po/ru/man2/close_range.2.po
new file mode 100644
index 00000000..7bf8a029
--- /dev/null
+++ b/po/ru/man2/close_range.2.po
@@ -0,0 +1,794 @@
+# Russian translation of manpages
+# This file is distributed under the same license as the manpages-l10n package.
+# Copyright © of this file:
+# Azamat Hackimov <azamat.hackimov@gmail.com>, 2014.
+# Dmitriy S. Seregin <dseregin@59.ru>, 2013.
+# Dmitry Bolkhovskikh <d20052005@yandex.ru>, 2017.
+# Katrin Kutepova <blackkatelv@gmail.com>, 2018.
+# 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:54+0100\n"
+"PO-Revision-Date: 2019-10-05 07:56+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 "close_range"
+msgstr "close_range"
+
+#. 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
+#, fuzzy
+#| msgid "close - close a file descriptor"
+msgid "close_range - close all file descriptors in a given range"
+msgstr "close - закрывает файловый дескриптор"
+
+#. 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>linux/close_range.hE<gt>>\n"
+msgstr "B<#include E<lt>linux/close_range.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 close_range(unsigned int >I<first>B<, unsigned int >I<last>B<,>\n"
+"B< unsigned int >I<flags>B<);>\n"
+msgstr ""
+"B<int close_range(unsigned int >I<first>B<, unsigned int >I<last>B<,>\n"
+"B< unsigned int >I<flags>B<);>\n"
+
+#. type: SH
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "DESCRIPTION"
+msgstr "ОПИСАНИЕ"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"The B<close_range>() system call closes all open file descriptors from "
+"I<first> to I<last> (included)."
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, fuzzy
+#| msgid "One or more file descriptors are not valid."
+msgid "Errors closing a given file descriptor are currently ignored."
+msgstr "Один или оба файловых дескриптора недействительны."
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, fuzzy
+#| msgid ""
+#| "The I<flags> argument is a bit mask created by ORing together 0 or more "
+#| "of the following values;"
+msgid "I<flags> is a bit mask containing 0 or more of the following:"
+msgstr ""
+"Аргумент I<flags> представляет собой битовую маску, создаваемую побитовым "
+"сложением (OR) следующих значений;"
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<CLOSE_RANGE_CLOEXEC> (since Linux 5.11)"
+msgstr "B<CLOSE_RANGE_CLOEXEC> (начиная с Linux 5.11)"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"Set the close-on-exec flag on the specified file descriptors, rather than "
+"immediately closing them."
+msgstr ""
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<CLOSE_RANGE_UNSHARE>"
+msgstr "B<CLOSE_RANGE_UNSHARE>"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"Unshare the specified file descriptors from any other processes before "
+"closing them, avoiding races with other threads sharing the file descriptor "
+"table."
+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
+#, fuzzy
+#| msgid ""
+#| "On error, B<copy_file_range>() returns -1 and I<errno> is set to "
+#| "indicate the error."
+msgid ""
+"On success, B<close_range>() returns 0. On error, -1 is returned and "
+"I<errno> is set to indicate the error."
+msgstr ""
+"В случае ошибки B<copy_file_range>() возвращает -1, а I<errno> "
+"устанавливается в соответствующее значение."
+
+#. type: SH
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "ERRORS"
+msgstr "ОШИБКИ"
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<EINVAL>"
+msgstr "B<EINVAL>"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid "I<flags> is not valid, or I<first> is greater than I<last>."
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"The following can occur with B<CLOSE_RANGE_UNSHARE> (when constructing the "
+"new descriptor table):"
+msgstr ""
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<EMFILE>"
+msgstr "B<EMFILE>"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"The number of open file descriptors exceeds the limit specified in I</proc/"
+"sys/fs/nr_open> (see B<proc>(5)). This error can occur in situations where "
+"that limit was lowered before a call to B<close_range>() where the "
+"B<CLOSE_RANGE_UNSHARE> flag is specified."
+msgstr ""
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<ENOMEM>"
+msgstr "B<ENOMEM>"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid "Insufficient kernel memory was available."
+msgstr "Недостаточное количество памяти ядра."
+
+#. type: SH
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "STANDARDS"
+msgstr "СТАНДАРТЫ"
+
+#. type: Plain text
+#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron
+#: opensuse-leap-15-6 opensuse-tumbleweed
+#, fuzzy
+#| msgid "None"
+msgid "None."
+msgstr "None"
+
+#. 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 "FreeBSD. Linux 5.9, glibc 2.34."
+msgstr ""
+
+#. type: SH
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "NOTES"
+msgstr "ЗАМЕЧАНИЯ"
+
+#. type: SS
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, fuzzy, no-wrap
+#| msgid "close - close a file descriptor"
+msgid "Closing all open file descriptors"
+msgstr "close - закрывает файловый дескриптор"
+
+#. 278a5fbaed89dacd04e9d052f4594ffd0e0585de
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"To avoid blindly closing file descriptors in the range of possible file "
+"descriptors, this is sometimes implemented (on Linux) by listing open file "
+"descriptors in I</proc/self/fd/> and calling B<close>(2) on each one. "
+"B<close_range>() can take care of this without requiring I</proc> and "
+"within a single system call, which provides significant performance benefits."
+msgstr ""
+
+#. type: SS
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, fuzzy, no-wrap
+#| msgid "a file descriptor becomes ready;"
+msgid "Closing file descriptors before exec"
+msgstr "файловый дескриптор не станет готов;"
+
+#. 60997c3d45d9a67daf01c56d805ae4fec37e0bd8
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, fuzzy
+#| msgid "a file descriptor becomes ready;"
+msgid "File descriptors can be closed safely using"
+msgstr "файловый дескриптор не станет готов;"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid ""
+"/* we don't want anything past stderr here */\n"
+"close_range(3, \\[ti]0U, CLOSE_RANGE_UNSHARE);\n"
+"execve(....);\n"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid "B<CLOSE_RANGE_UNSHARE> is conceptually equivalent to"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid ""
+"unshare(CLONE_FILES);\n"
+"close_range(first, last, 0);\n"
+msgstr ""
+"unshare(CLONE_FILES);\n"
+"close_range(first, last, 0);\n"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"but can be more efficient: if the unshared range extends past the current "
+"maximum number of file descriptors allocated in the caller's file descriptor "
+"table (the common case when I<last> is \\[ti]0U), the kernel will unshare a "
+"new file descriptor table for the caller up to I<first>, copying as few file "
+"descriptors as possible. This avoids subsequent B<close>(2) calls "
+"entirely; the whole operation is complete once the table is unshared."
+msgstr ""
+
+#. type: SS
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "Closing files on exec"
+msgstr ""
+
+#. 582f1fb6b721facf04848d2ca57f34468da1813e
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"This is particularly useful in cases where multiple pre-B<exec> setup steps "
+"risk conflicting with each other. For example, setting up a B<seccomp>(2) "
+"profile can conflict with a B<close_range>() call: if the file descriptors "
+"are closed before the B<seccomp>(2) profile is set up, the profile setup "
+"can't use them itself, or control their closure; if the file descriptors are "
+"closed afterwards, the seccomp profile can't block the B<close_range>() "
+"call or any fallbacks. Using B<CLOSE_RANGE_CLOEXEC> avoids this: the "
+"descriptors can be marked before the B<seccomp>(2) profile is set up, and "
+"the profile can control access to B<close_range>() without affecting the "
+"calling process."
+msgstr ""
+
+#. type: SH
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "EXAMPLES"
+msgstr "ПРИМЕРЫ"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"The program shown below opens the files named in its command-line arguments, "
+"displays the list of files that it has opened (by iterating through the "
+"entries in I</proc/PID/fd>), uses B<close_range>() to close all file "
+"descriptors greater than or equal to 3, and then once more displays the "
+"process's list of open files. The following example demonstrates the use of "
+"the program:"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid ""
+"$ B<touch /tmp/a /tmp/b /tmp/c>\n"
+"$ B<./a.out /tmp/a /tmp/b /tmp/c>\n"
+"/tmp/a opened as FD 3\n"
+"/tmp/b opened as FD 4\n"
+"/tmp/c opened as FD 5\n"
+"/proc/self/fd/0 ==E<gt> /dev/pts/1\n"
+"/proc/self/fd/1 ==E<gt> /dev/pts/1\n"
+"/proc/self/fd/2 ==E<gt> /dev/pts/1\n"
+"/proc/self/fd/3 ==E<gt> /tmp/a\n"
+"/proc/self/fd/4 ==E<gt> /tmp/b\n"
+"/proc/self/fd/5 ==E<gt> /tmp/b\n"
+"/proc/self/fd/6 ==E<gt> /proc/9005/fd\n"
+"========= About to call close_range() =======\n"
+"/proc/self/fd/0 ==E<gt> /dev/pts/1\n"
+"/proc/self/fd/1 ==E<gt> /dev/pts/1\n"
+"/proc/self/fd/2 ==E<gt> /dev/pts/1\n"
+"/proc/self/fd/3 ==E<gt> /proc/9005/fd\n"
+msgstr ""
+"$ B<touch /tmp/a /tmp/b /tmp/c>\n"
+"$ B<./a.out /tmp/a /tmp/b /tmp/c>\n"
+"/tmp/a opened as FD 3\n"
+"/tmp/b opened as FD 4\n"
+"/tmp/c opened as FD 5\n"
+"/proc/self/fd/0 ==E<gt> /dev/pts/1\n"
+"/proc/self/fd/1 ==E<gt> /dev/pts/1\n"
+"/proc/self/fd/2 ==E<gt> /dev/pts/1\n"
+"/proc/self/fd/3 ==E<gt> /tmp/a\n"
+"/proc/self/fd/4 ==E<gt> /tmp/b\n"
+"/proc/self/fd/5 ==E<gt> /tmp/b\n"
+"/proc/self/fd/6 ==E<gt> /proc/9005/fd\n"
+"========= About to call close_range() =======\n"
+"/proc/self/fd/0 ==E<gt> /dev/pts/1\n"
+"/proc/self/fd/1 ==E<gt> /dev/pts/1\n"
+"/proc/self/fd/2 ==E<gt> /dev/pts/1\n"
+"/proc/self/fd/3 ==E<gt> /proc/9005/fd\n"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"Note that the lines showing the pathname I</proc/9005/fd> result from the "
+"calls to B<opendir>(3)."
+msgstr ""
+
+#. type: SS
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "Program source"
+msgstr "Исходный код программы"
+
+#. type: Plain text
+#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron
+#: opensuse-tumbleweed
+#, no-wrap
+msgid ""
+"#define _GNU_SOURCE\n"
+"#include E<lt>dirent.hE<gt>\n"
+"#include E<lt>fcntl.hE<gt>\n"
+"#include E<lt>limits.hE<gt>\n"
+"#include E<lt>stdio.hE<gt>\n"
+"#include E<lt>stdlib.hE<gt>\n"
+"#include E<lt>sys/syscall.hE<gt>\n"
+"#include E<lt>unistd.hE<gt>\n"
+"\\&\n"
+"/* Show the contents of the symbolic links in /proc/self/fd */\n"
+"\\&\n"
+"static void\n"
+"show_fds(void)\n"
+"{\n"
+" DIR *dirp;\n"
+" char path[PATH_MAX], target[PATH_MAX];\n"
+" ssize_t len;\n"
+" struct dirent *dp;\n"
+"\\&\n"
+" dirp = opendir(\"/proc/self/fd\");\n"
+" if (dirp == NULL) {\n"
+" perror(\"opendir\");\n"
+" exit(EXIT_FAILURE);\n"
+" }\n"
+"\\&\n"
+" for (;;) {\n"
+" dp = readdir(dirp);\n"
+" if (dp == NULL)\n"
+" break;\n"
+"\\&\n"
+" if (dp-E<gt>d_type == DT_LNK) {\n"
+" snprintf(path, sizeof(path), \"/proc/self/fd/%s\",\n"
+" dp-E<gt>d_name);\n"
+"\\&\n"
+" len = readlink(path, target, sizeof(target));\n"
+" printf(\"%s ==E<gt> %.*s\\en\", path, (int) len, target);\n"
+" }\n"
+" }\n"
+"\\&\n"
+" closedir(dirp);\n"
+"}\n"
+"\\&\n"
+"int\n"
+"main(int argc, char *argv[])\n"
+"{\n"
+" int fd;\n"
+"\\&\n"
+" for (size_t j = 1; j E<lt> argc; j++) {\n"
+" fd = open(argv[j], O_RDONLY);\n"
+" if (fd == -1) {\n"
+" perror(argv[j]);\n"
+" exit(EXIT_FAILURE);\n"
+" }\n"
+" printf(\"%s opened as FD %d\\en\", argv[j], fd);\n"
+" }\n"
+"\\&\n"
+" show_fds();\n"
+"\\&\n"
+" printf(\"========= About to call close_range() =======\\en\");\n"
+"\\&\n"
+" if (syscall(SYS_close_range, 3, \\[ti]0U, 0) == -1) {\n"
+" perror(\"close_range\");\n"
+" exit(EXIT_FAILURE);\n"
+" }\n"
+"\\&\n"
+" show_fds();\n"
+" exit(EXIT_FAILURE);\n"
+"}\n"
+msgstr ""
+
+#. SRC END
+#. type: SH
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "SEE ALSO"
+msgstr "СМ. ТАКЖЕ"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid "B<close>(2)"
+msgstr "B<close>(2)"
+
+#. type: TH
+#: debian-bookworm
+#, no-wrap
+msgid "2023-02-10"
+msgstr "10 февраля 2023 г."
+
+#. type: TH
+#: debian-bookworm
+#, no-wrap
+msgid "Linux man-pages 6.03"
+msgstr "Linux man-pages 6.03"
+
+#. type: SH
+#: debian-bookworm
+#, no-wrap
+msgid "VERSIONS"
+msgstr "ВЕРСИИ"
+
+#. type: Plain text
+#: debian-bookworm
+#, fuzzy
+#| msgid ""
+#| "B<fchmodat>() was added to Linux in kernel 2.6.16; library support was "
+#| "added to glibc in version 2.4."
+msgid ""
+"B<close_range>() first appeared in Linux 5.9. Library support was added in "
+"glibc 2.34."
+msgstr ""
+"Вызов B<fchmodat>() был добавлен в ядро Linux версии 2.6.16; поддержка в "
+"glibc доступна с версии 2.4."
+
+#. type: Plain text
+#: debian-bookworm
+msgid ""
+"B<close_range>() is a nonstandard function that is also present on FreeBSD."
+msgstr ""
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid ""
+"#define _GNU_SOURCE\n"
+"#include E<lt>dirent.hE<gt>\n"
+"#include E<lt>fcntl.hE<gt>\n"
+"#include E<lt>limits.hE<gt>\n"
+"#include E<lt>stdio.hE<gt>\n"
+"#include E<lt>stdlib.hE<gt>\n"
+"#include E<lt>sys/syscall.hE<gt>\n"
+"#include E<lt>unistd.hE<gt>\n"
+msgstr ""
+"#define _GNU_SOURCE\n"
+"#include E<lt>dirent.hE<gt>\n"
+"#include E<lt>fcntl.hE<gt>\n"
+"#include E<lt>limits.hE<gt>\n"
+"#include E<lt>stdio.hE<gt>\n"
+"#include E<lt>stdlib.hE<gt>\n"
+"#include E<lt>sys/syscall.hE<gt>\n"
+"#include E<lt>unistd.hE<gt>\n"
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid "/* Show the contents of the symbolic links in /proc/self/fd */\n"
+msgstr ""
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid ""
+"static void\n"
+"show_fds(void)\n"
+"{\n"
+" DIR *dirp;\n"
+" char path[PATH_MAX], target[PATH_MAX];\n"
+" ssize_t len;\n"
+" struct dirent *dp;\n"
+msgstr ""
+"static void\n"
+"show_fds(void)\n"
+"{\n"
+" DIR *dirp;\n"
+" char path[PATH_MAX], target[PATH_MAX];\n"
+" ssize_t len;\n"
+" struct dirent *dp;\n"
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid ""
+" dirp = opendir(\"/proc/self/fd\");\n"
+" if (dirp == NULL) {\n"
+" perror(\"opendir\");\n"
+" exit(EXIT_FAILURE);\n"
+" }\n"
+msgstr ""
+" dirp = opendir(\"/proc/self/fd\");\n"
+" if (dirp == NULL) {\n"
+" perror(\"opendir\");\n"
+" exit(EXIT_FAILURE);\n"
+" }\n"
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid ""
+" for (;;) {\n"
+" dp = readdir(dirp);\n"
+" if (dp == NULL)\n"
+" break;\n"
+msgstr ""
+" for (;;) {\n"
+" dp = readdir(dirp);\n"
+" if (dp == NULL)\n"
+" break;\n"
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid ""
+" if (dp-E<gt>d_type == DT_LNK) {\n"
+" snprintf(path, sizeof(path), \"/proc/self/fd/%s\",\n"
+" dp-E<gt>d_name);\n"
+msgstr ""
+" if (dp-E<gt>d_type == DT_LNK) {\n"
+" snprintf(path, sizeof(path), \"/proc/self/fd/%s\",\n"
+" dp-E<gt>d_name);\n"
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid ""
+" len = readlink(path, target, sizeof(target));\n"
+" printf(\"%s ==E<gt> %.*s\\en\", path, (int) len, target);\n"
+" }\n"
+" }\n"
+msgstr ""
+" len = readlink(path, target, sizeof(target));\n"
+" printf(\"%s ==E<gt> %.*s\\en\", path, (int) len, target);\n"
+" }\n"
+" }\n"
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid ""
+" closedir(dirp);\n"
+"}\n"
+msgstr ""
+" closedir(dirp);\n"
+"}\n"
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid ""
+"int\n"
+"main(int argc, char *argv[])\n"
+"{\n"
+" int fd;\n"
+msgstr ""
+"int\n"
+"main(int argc, char *argv[])\n"
+"{\n"
+" int fd;\n"
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid ""
+" for (size_t j = 1; j E<lt> argc; j++) {\n"
+" fd = open(argv[j], O_RDONLY);\n"
+" if (fd == -1) {\n"
+" perror(argv[j]);\n"
+" exit(EXIT_FAILURE);\n"
+" }\n"
+" printf(\"%s opened as FD %d\\en\", argv[j], fd);\n"
+" }\n"
+msgstr ""
+" for (size_t j = 1; j E<lt> argc; j++) {\n"
+" fd = open(argv[j], O_RDONLY);\n"
+" if (fd == -1) {\n"
+" perror(argv[j]);\n"
+" exit(EXIT_FAILURE);\n"
+" }\n"
+" printf(\"%s opened as FD %d\\en\", argv[j], fd);\n"
+" }\n"
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid " show_fds();\n"
+msgstr " show_fds();\n"
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid " printf(\"========= About to call close_range() =======\\en\");\n"
+msgstr " printf(\"========= About to call close_range() =======\\en\");\n"
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, fuzzy, no-wrap
+#| msgid ""
+#| " if (syscall(SYS_close_range, 3, \\(ti0U, 0) == -1) {\n"
+#| " perror(\"close_range\");\n"
+#| " exit(EXIT_FAILURE);\n"
+#| " }\n"
+msgid ""
+" if (syscall(SYS_close_range, 3, \\[ti]0U, 0) == -1) {\n"
+" perror(\"close_range\");\n"
+" exit(EXIT_FAILURE);\n"
+" }\n"
+msgstr ""
+" if (syscall(SYS_close_range, 3, \\(ti0U, 0) == -1) {\n"
+" perror(\"close_range\");\n"
+" exit(EXIT_FAILURE);\n"
+" }\n"
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid ""
+" show_fds();\n"
+" exit(EXIT_FAILURE);\n"
+"}\n"
+msgstr ""
+" show_fds();\n"
+" exit(EXIT_FAILURE);\n"
+"}\n"
+
+#. type: TH
+#: debian-unstable opensuse-tumbleweed
+#, no-wrap
+msgid "2023-05-03"
+msgstr "3 мая 2023 г."
+
+#. type: TH
+#: debian-unstable opensuse-tumbleweed
+#, no-wrap
+msgid "Linux man-pages 6.05.01"
+msgstr "Linux man-pages 6.05.01"
+
+#. type: TH
+#: opensuse-leap-15-6
+#, no-wrap
+msgid "2023-03-30"
+msgstr "30 марта 2023 г."
+
+#. type: TH
+#: opensuse-leap-15-6
+#, no-wrap
+msgid "Linux man-pages 6.04"
+msgstr "Linux man-pages 6.04"