diff options
Diffstat (limited to 'po/ru/man2/dup.2.po')
-rw-r--r-- | po/ru/man2/dup.2.po | 716 |
1 files changed, 716 insertions, 0 deletions
diff --git a/po/ru/man2/dup.2.po b/po/ru/man2/dup.2.po new file mode 100644 index 00000000..a774a6e8 --- /dev/null +++ b/po/ru/man2/dup.2.po @@ -0,0 +1,716 @@ +# Russian translation of manpages +# This file is distributed under the same license as the manpages-l10n package. +# Copyright © of this file: +# Yuri Kozlov <yuray@komyakino.ru>, 2012-2019. +# Иван Павлов <pavia00@gmail.com>, 2017. +msgid "" +msgstr "" +"Project-Id-Version: manpages-l10n\n" +"POT-Creation-Date: 2024-03-01 16:55+0100\n" +"PO-Revision-Date: 2019-08-29 09:55+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 "dup" +msgstr "dup" + +#. 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 "dup, dup2, dup3 - duplicate a file descriptor" +msgstr "dup, dup2, dup3 - создать дубликат файлового дескриптора" + +#. 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>unistd.hE<gt>>\n" +msgstr "B<#include E<lt>unistd.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 dup(int >I<oldfd>B<);>\n" +"B<int dup2(int >I<oldfd>B<, int >I<newfd>B<);>\n" +msgstr "" +"B<int dup(int >I<oldfd>B<);>\n" +"B<int dup2(int >I<oldfd>B<, int >I<newfd>B<);>\n" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, fuzzy, no-wrap +#| msgid "" +#| "B<#define _GNU_SOURCE> /* See feature_test_macros(7) */\n" +#| "B<#include E<lt>fcntl.hE<gt>> /* Obtain O_* constant definitions */\n" +#| "B<#include E<lt>unistd.hE<gt>>\n" +msgid "" +"B<#define _GNU_SOURCE> /* See feature_test_macros(7) */\n" +"B<#include E<lt>fcntl.hE<gt>> /* Definition of B<O_*> constants */\n" +"B<#include E<lt>unistd.hE<gt>>\n" +msgstr "" +"B<#define _GNU_SOURCE> /* Смотрите feature_test_macros(7) */\n" +"B<#include E<lt>fcntl.hE<gt>> /* Определение констант O_* */\n" +"B<#include E<lt>unistd.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 dup3(int >I<oldfd>B<, int >I<newfd>B<, int >I<flags>B<);>\n" +msgstr "B<int dup3(int >I<oldfd>B<, int >I<newfd>B<, int >I<flags>B<);>\n" + +#. type: SH +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "DESCRIPTION" +msgstr "ОПИСАНИЕ" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"The B<dup>() system call allocates a new file descriptor that refers to the " +"same open file description as the descriptor I<oldfd>. (For an explanation " +"of open file descriptions, see B<open>(2).) The new file descriptor number " +"is guaranteed to be the lowest-numbered file descriptor that was unused in " +"the calling process." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, fuzzy +#| msgid "" +#| "After a successful return, the old and new file descriptors may be used " +#| "interchangeably. They refer to the same open file description (see " +#| "B<open>(2)) and thus share file offset and file status flags; for " +#| "example, if the file offset is modified by using B<lseek>(2) on one of " +#| "the file descriptors, the offset is also changed for the other." +msgid "" +"After a successful return, the old and new file descriptors may be used " +"interchangeably. Since the two file descriptors refer to the same open file " +"description, they share file offset and file status flags; for example, if " +"the file offset is modified by using B<lseek>(2) on one of the file " +"descriptors, the offset is also changed for the other file descriptor." +msgstr "" +"После успешного выполнения старый и новый файловые дескрипторы являются " +"взаимозаменяемыми. Они указывают на одно и то же открытое файловое описание " +"(смотрите B<open>(2)) и поэтому имеют общее файловое смещение и флаги " +"состояния файла; например, если файловое смещение изменить с помощью " +"B<lseek>(2) через один из файловых дескрипторов, то смещение изменится и для " +"другого." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"The two file descriptors do not share file descriptor flags (the close-on-" +"exec flag). The close-on-exec flag (B<FD_CLOEXEC>; see B<fcntl>(2)) for " +"the duplicate descriptor is off." +msgstr "" +"Эти два файловых дескриптора имеют различные флаги дескриптора файла (флаг " +"close-on-exec). Флаг close-on-exec (B<FD_CLOEXEC>; см. B<fcntl>(2)) у копии " +"дескриптора сбрасывается." + +#. type: SS +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "dup2()" +msgstr "dup2()" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, fuzzy +#| msgid "" +#| "The B<dup2>() system call performs the same task as B<dup>(), but " +#| "instead of using the lowest-numbered unused file descriptor, it uses the " +#| "file descriptor number specified in I<newfd>. If the file descriptor " +#| "I<newfd> was previously open, it is silently closed before being reused." +msgid "" +"The B<dup2>() system call performs the same task as B<dup>(), but instead " +"of using the lowest-numbered unused file descriptor, it uses the file " +"descriptor number specified in I<newfd>. In other words, the file " +"descriptor I<newfd> is adjusted so that it now refers to the same open file " +"description as I<oldfd>." +msgstr "" +"Системный вызов B<dup2>() выполняет ту же задачу, что и B<dup>(), но вместо " +"использования самого маленького неиспользуемого номера файлового " +"дескриптора, он использует номер файлового дескриптора, указанного в " +"I<newfd>. Если файловый дескриптор I<newfd> уже открыт, то он закрывается " +"перед повторным использованием." + +#. 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<newfd> was previously open, it is closed before " +"being reused; the close is performed silently (i.e., any errors during the " +"close are not reported by B<dup2>())." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"The steps of closing and reusing the file descriptor I<newfd> are performed " +"I<atomically>. This is important, because trying to implement equivalent " +"functionality using B<close>(2) and B<dup>() would be subject to race " +"conditions, whereby I<newfd> might be reused between the two steps. Such " +"reuse could happen because the main program is interrupted by a signal " +"handler that allocates a file descriptor, or because a parallel thread " +"allocates a file descriptor." +msgstr "" +"Шаги по закрытию и повторному использованию файлового дескриптора I<newfd> " +"выполняются I<атомарно>. Это важно, так как попытка реализовать подобное с " +"помощью B<close>(2) и B<dup>() привело бы к состязательности, в силу чего " +"I<newfd> мог быть задействован повторно между этими двумя шагами. Такое " +"повторное использование может произойти, из-за прерывания основной программы " +"обработчиком сигналов, который выделяет файловый дескриптор, или из-за " +"параллельной нити, выделяющей файловый дескриптор." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "Note the following points:" +msgstr "Также заметим следующее:" + +#. type: IP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "\\[bu]" +msgstr "\\[bu]" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"If I<oldfd> is not a valid file descriptor, then the call fails, and " +"I<newfd> is not closed." +msgstr "" +"Если I<oldfd> является некорректным файловым дескриптором, то вызов " +"завершается с ошибкой, а I<newfd> не закрывается." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"If I<oldfd> is a valid file descriptor, and I<newfd> has the same value as " +"I<oldfd>, then B<dup2>() does nothing, and returns I<newfd>." +msgstr "" +"Если I<oldfd> является корректным файловым дескриптором, а номер I<newfd> " +"совпадает с I<oldfd>, то B<dup2>() не делает ничего и возвращает значение " +"I<newfd>." + +#. type: SS +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "dup3()" +msgstr "dup3()" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "B<dup3>() is the same as B<dup2>(), except that:" +msgstr "B<dup3>() похож на B<dup2>(). Отличия заключаются в следующем:" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"The caller can force the close-on-exec flag to be set for the new file " +"descriptor by specifying B<O_CLOEXEC> in I<flags>. See the description of " +"the same flag in B<open>(2) for reasons why this may be useful." +msgstr "" +"Вызывающий может принудительно установить флаг close-on-exec flag у нового " +"файлового дескриптора, указав B<O_CLOEXEC> в I<flags>. Зачем это может быть " +"нужно смотрите в B<open>(2)." + +#. Ulrich Drepper, LKML, 2008-10-09: +#. We deliberately decided on this change. Otherwise, what is the +#. result of dup3(fd, fd, O_CLOEXEC)? +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"If I<oldfd> equals I<newfd>, then B<dup3>() fails with the error B<EINVAL>." +msgstr "Если I<oldfd> равно I<newfd>, то B<dup3>() выдает ошибку B<EINVAL>." + +#. 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 success, these system calls return the new file descriptor. On error, " +#| "-1 is returned, and I<errno> is set appropriately." +msgid "" +"On success, these system calls return the new file descriptor. 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<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<oldfd> isn't an open file descriptor." +msgstr "Значение I<oldfd> не является открытым файловым дескриптором." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"I<newfd> is out of the allowed range for file descriptors (see the " +"discussion of B<RLIMIT_NOFILE> in B<getrlimit>(2))." +msgstr "" +"Значение I<newfd> находится вне допустимого диапазона файловых дескрипторов " +"(смотрите описание B<RLIMIT_NOFILE> в B<getrlimit>(2))." + +#. 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 "" +"(Linux only) This may be returned by B<dup2>() or B<dup3>() during a race " +"condition with B<open>(2) and B<dup>()." +msgstr "" +"(только в Linux) Может случиться в B<dup2>() или B<dup3>() при возникновении " +"состязательности вызовов B<open>(2) и B<dup>()." + +#. 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 "" +"The B<dup2>() or B<dup3>() call was interrupted by a signal; see " +"B<signal>(7)." +msgstr "" +"Вызов B<dup2>() или B<dup3>() был прерван каким-либо сигналом. Смотрите " +"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<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 "(B<dup3>()) I<flags> contain an invalid value." +msgstr "(B<dup3>()) I<flags> содержит некорректное значение." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "(B<dup3>()) I<oldfd> was equal to I<newfd>." +msgstr "(B<dup3>()) I<oldfd> было равно I<newfd>." + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B<EMFILE>" +msgstr "B<EMFILE>" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"The per-process limit on the number of open file descriptors has been " +"reached (see the discussion of B<RLIMIT_NOFILE> in B<getrlimit>(2))." +msgstr "" +"Было достигнуто ограничение по количеству открытых файловых дескрипторов на " +"процесс (смотрите описание B<RLIMIT_NOFILE> в B<getrlimit>(2))." + +#. 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: TP +#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron +#: opensuse-leap-15-6 opensuse-tumbleweed +#, fuzzy, no-wrap +#| msgid "B<dup>(2)" +msgid "B<dup>()" +msgstr "B<dup>(2)" + +#. type: TQ +#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron +#: opensuse-leap-15-6 opensuse-tumbleweed +#, fuzzy, no-wrap +#| msgid "B<dup2>(2)" +msgid "B<dup2>()" +msgstr "B<dup2>(2)" + +#. 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." + +#. type: TP +#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron +#: opensuse-leap-15-6 opensuse-tumbleweed +#, fuzzy, no-wrap +#| msgid "B<dup>(2)" +msgid "B<dup3>()" +msgstr "B<dup>(2)" + +#. type: Plain text +#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron +#: opensuse-leap-15-6 opensuse-tumbleweed +msgid "Linux." +msgstr "Linux." + +#. type: SH +#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron +#: opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "HISTORY" +msgstr "ИСТОРИЯ" + +#. SVr4 documents additional +#. EINTR and ENOLINK error conditions. POSIX.1 adds EINTR. +#. The EBUSY return is Linux-specific. +#. type: Plain text +#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron +#: opensuse-leap-15-6 opensuse-tumbleweed +msgid "POSIX.1-2001, SVr4, 4.3BSD." +msgstr "POSIX.1-2001, SVr4, 4.3BSD." + +#. type: Plain text +#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron +#: opensuse-leap-15-6 opensuse-tumbleweed +msgid "Linux 2.6.27, glibc 2.9." +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: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"The error returned by B<dup2>() is different from that returned by " +"B<fcntl(>..., B<F_DUPFD>, ...B<)> when I<newfd> is out of range. On some " +"systems, B<dup2>() also sometimes returns B<EINVAL> like B<F_DUPFD>." +msgstr "" +"Ошибка, которую возвращает B<dup2>(), отличается от той, что возвращает " +"B<fcntl(>…, B<F_DUPFD>, …B<)>, когда I<newfd> находится вне допустимых " +"пределов. На некоторых системах B<dup2>() также иногда возвращает B<EINVAL> " +"— как B<F_DUPFD>." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, fuzzy +#| msgid "" +#| "If I<newfd> was open, any errors that would have been reported at " +#| "B<close>(2) time are lost. If this is of concern, then\\(emunless the " +#| "program is single-threaded and does not allocate file descriptors in " +#| "signal handlers\\(emthe correct approach is I<not> to close I<newfd> " +#| "before calling B<dup2>(), because of the race condition described above. " +#| "Instead, code something like the following could be used:" +msgid "" +"If I<newfd> was open, any errors that would have been reported at " +"B<close>(2) time are lost. If this is of concern, then\\[em]unless the " +"program is single-threaded and does not allocate file descriptors in signal " +"handlers\\[em]the correct approach is I<not> to close I<newfd> before " +"calling B<dup2>(), because of the race condition described above. Instead, " +"code something like the following could be used:" +msgstr "" +"Если был открыт I<newfd>, то любые ошибки, о которых было бы сообщено " +"B<close>(2), теряются. Если это важно, то (если программа однонитевая и не " +"выделяет файловые дескрипторы в обработчиках сигналов) правильней будет " +"I<не> закрывать I<newfd> перед вызовом B<dup2>(), из-за состязательности, " +"описанной выше. Вместо этого можно использовать, например, такой код:" + +#. type: Plain text +#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron +#: opensuse-tumbleweed +#, no-wrap +msgid "" +"/* Obtain a duplicate of \\[aq]newfd\\[aq] that can subsequently\n" +" be used to check for close() errors; an EBADF error\n" +" means that \\[aq]newfd\\[aq] was not open. */\n" +"\\&\n" +"tmpfd = dup(newfd);\n" +"if (tmpfd == -1 && errno != EBADF) {\n" +" /* Handle unexpected dup() error. */\n" +"}\n" +"\\&\n" +"/* Atomically duplicate \\[aq]oldfd\\[aq] on \\[aq]newfd\\[aq]. */\n" +"\\&\n" +"if (dup2(oldfd, newfd) == -1) {\n" +" /* Handle dup2() error. */\n" +"}\n" +"\\&\n" +"/* Now check for close() errors on the file originally\n" +" referred to by \\[aq]newfd\\[aq]. */\n" +"\\&\n" +"if (tmpfd != -1) {\n" +" if (close(tmpfd) == -1) {\n" +" /* Handle errors from close. */\n" +" }\n" +"}\n" +msgstr "" + +#. type: SH +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "SEE ALSO" +msgstr "СМ. ТАКЖЕ" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "B<close>(2), B<fcntl>(2), B<open>(2), B<pidfd_getfd>(2)" +msgstr "B<close>(2), B<fcntl>(2), B<open>(2), B<pidfd_getfd>(2)" + +#. 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: SH +#: debian-bookworm +#, no-wrap +msgid "VERSIONS" +msgstr "ВЕРСИИ" + +#. type: Plain text +#: debian-bookworm +#, fuzzy +#| msgid "" +#| "B<dup3>() was added to Linux in version 2.6.27; glibc support is " +#| "available starting with version 2.9." +msgid "" +"B<dup3>() was added in Linux 2.6.27; glibc support is available since glibc " +"2.9." +msgstr "" +"Вызов B<dup3>() был добавлен в Linux версии 2.6.27; поддержка в glibc " +"доступна с версии 2.9." + +#. type: Plain text +#: debian-bookworm +msgid "B<dup>(), B<dup2>(): POSIX.1-2001, POSIX.1-2008, SVr4, 4.3BSD." +msgstr "B<dup>(), B<dup2>(): POSIX.1-2001, POSIX.1-2008, SVr4, 4.3BSD." + +#. SVr4 documents additional +#. EINTR and ENOLINK error conditions. POSIX.1 adds EINTR. +#. The EBUSY return is Linux-specific. +#. type: Plain text +#: debian-bookworm +msgid "B<dup3>() is Linux-specific." +msgstr "B<dup3>() есть только в Linux." + +#. type: Plain text +#: debian-bookworm opensuse-leap-15-6 +#, fuzzy, no-wrap +#| msgid "" +#| "/* Obtain a duplicate of \\(aqnewfd\\(aq that can subsequently\n" +#| " be used to check for close() errors; an EBADF error\n" +#| " means that \\(aqnewfd\\(aq was not open. */\n" +msgid "" +"/* Obtain a duplicate of \\[aq]newfd\\[aq] that can subsequently\n" +" be used to check for close() errors; an EBADF error\n" +" means that \\[aq]newfd\\[aq] was not open. */\n" +msgstr "" +"/* Получить копию «newfd», которую затем можно\n" +" использовать для проверки ошибок close(); ошибка EBADF\n" +" означает, что «newfd» не открыт. */\n" + +#. type: Plain text +#: debian-bookworm opensuse-leap-15-6 +#, no-wrap +msgid "" +"tmpfd = dup(newfd);\n" +"if (tmpfd == -1 && errno != EBADF) {\n" +" /* Handle unexpected dup() error. */\n" +"}\n" +msgstr "" +" tmpfd = dup(newfd);\n" +" if (tmpfd == -1 && errno != EBADF) {\n" +" /* обработка неожидаемой ошибки dup(). */\n" +" }\n" + +#. type: Plain text +#: debian-bookworm opensuse-leap-15-6 +#, fuzzy, no-wrap +#| msgid "/* Atomically duplicate \\(aqoldfd\\(aq on \\(aqnewfd\\(aq. */\n" +msgid "/* Atomically duplicate \\[aq]oldfd\\[aq] on \\[aq]newfd\\[aq]. */\n" +msgstr "/* атомарное копирование «oldfd» в «newfd» */\n" + +#. type: Plain text +#: debian-bookworm opensuse-leap-15-6 +#, no-wrap +msgid "" +"if (dup2(oldfd, newfd) == -1) {\n" +" /* Handle dup2() error. */\n" +"}\n" +msgstr "" +" if (dup2(oldfd, newfd) == -1) {\n" +" /* обработка ошибки dup2(). */\n" +" }\n" + +#. type: Plain text +#: debian-bookworm opensuse-leap-15-6 +#, fuzzy, no-wrap +#| msgid "" +#| "/* Now check for close() errors on the file originally\n" +#| " referred to by \\(aqnewfd\\(aq. */\n" +msgid "" +"/* Now check for close() errors on the file originally\n" +" referred to by \\[aq]newfd\\[aq]. */\n" +msgstr "" +" /* теперь проверим ошибки close() у файла, на который изначально\n" +" ссылался «newfd» */\n" + +#. type: Plain text +#: debian-bookworm opensuse-leap-15-6 +#, no-wrap +msgid "" +"if (tmpfd != -1) {\n" +" if (close(tmpfd) == -1) {\n" +" /* Handle errors from close. */\n" +" }\n" +"}\n" +msgstr "" +" if (tmpfd != -1) {\n" +" if (close(tmpfd) == -1) {\n" +" /* обработка ошибок закрытия. */\n" +" }\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" |