diff options
Diffstat (limited to 'po/ru/man2/close_range.2.po')
-rw-r--r-- | po/ru/man2/close_range.2.po | 794 |
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" |