summaryrefslogtreecommitdiffstats
path: root/po/ru/man2/select.2.po
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-15 19:43:11 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-15 19:43:11 +0000
commitfc22b3d6507c6745911b9dfcc68f1e665ae13dbc (patch)
treece1e3bce06471410239a6f41282e328770aa404a /po/ru/man2/select.2.po
parentInitial commit. (diff)
downloadmanpages-l10n-fc22b3d6507c6745911b9dfcc68f1e665ae13dbc.tar.xz
manpages-l10n-fc22b3d6507c6745911b9dfcc68f1e665ae13dbc.zip
Adding upstream version 4.22.0.upstream/4.22.0
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'po/ru/man2/select.2.po')
-rw-r--r--po/ru/man2/select.2.po1797
1 files changed, 1797 insertions, 0 deletions
diff --git a/po/ru/man2/select.2.po b/po/ru/man2/select.2.po
new file mode 100644
index 00000000..637496d0
--- /dev/null
+++ b/po/ru/man2/select.2.po
@@ -0,0 +1,1797 @@
+# Russian translation of manpages
+# This file is distributed under the same license as the manpages-l10n package.
+# Copyright © of this file:
+# Alexander Golubev <fatzer2@gmail.com>, 2018.
+# Azamat Hackimov <azamat.hackimov@gmail.com>, 2011, 2014-2016.
+# Hotellook, 2014.
+# Nikita <zxcvbnm3230@mail.ru>, 2014.
+# Spiros Georgaras <sng@hellug.gr>, 2016.
+# Vladislav <ivladislavefimov@gmail.com>, 2015.
+# 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 17:07+0100\n"
+"PO-Revision-Date: 2019-10-15 18: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 "select"
+msgstr "select"
+
+#. 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 ""
+"select, pselect, FD_CLR, FD_ISSET, FD_SET, FD_ZERO, fd_set - synchronous I/O "
+"multiplexing"
+msgstr ""
+"select, pselect, FD_CLR, FD_ISSET, FD_SET, FD_ZERO, fd_set - многопоточный "
+"синхронный ввод-вывод"
+
+#. 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>sys/select.hE<gt>>\n"
+msgstr "B<#include E<lt>sys/select.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<typedef> /* ... */ B<fd_set;>\n"
+msgstr "B<typedef> /* ... */ B<fd_set;>\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<int select(int >I<nfds>B<, fd_set *restrict >I<readfds>B<,>\n"
+#| "B< fd_set *restrict >I<writefds>B<, fd_set *restrict >I<exceptfds>B<,>\n"
+#| "B< struct timeval *restrict >I<timeout>B<);>\n"
+msgid ""
+"B<int select(int >I<nfds>B<, fd_set *_Nullable restrict >I<readfds>B<,>\n"
+"B< fd_set *_Nullable restrict >I<writefds>B<,>\n"
+"B< fd_set *_Nullable restrict >I<exceptfds>B<,>\n"
+"B< struct timeval *_Nullable restrict >I<timeout>B<);>\n"
+msgstr ""
+"B<int select(int >I<nfds>B<, fd_set *restrict >I<readfds>B<,>\n"
+"B< fd_set *restrict >I<writefds>B<, fd_set *restrict >I<exceptfds>B<,>\n"
+"B< struct timeval *restrict >I<timeout>B<);>\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<void FD_CLR(int >I<fd>B<, fd_set *>I<set>B<);>\n"
+"B<int FD_ISSET(int >I<fd>B<, fd_set *>I<set>B<);>\n"
+"B<void FD_SET(int >I<fd>B<, fd_set *>I<set>B<);>\n"
+"B<void FD_ZERO(fd_set *>I<set>B<);>\n"
+msgstr ""
+"B<void FD_CLR(int >I<fd>B<, fd_set *>I<set>B<);>\n"
+"B<int FD_ISSET(int >I<fd>B<, fd_set *>I<set>B<);>\n"
+"B<void FD_SET(int >I<fd>B<, fd_set *>I<set>B<);>\n"
+"B<void FD_ZERO(fd_set *>I<set>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<int pselect(int >I<nfds>B<, fd_set *restrict >I<readfds>B<,>\n"
+#| "B< fd_set *restrict >I<writefds>B<, fd_set *restrict >I<exceptfds>B<,>\n"
+#| "B< const struct timespec *restrict >I<timeout>B<,>\n"
+#| "B< const sigset_t *restrict >I<sigmask>B<);>\n"
+msgid ""
+"B<int pselect(int >I<nfds>B<, fd_set *_Nullable restrict >I<readfds>B<,>\n"
+"B< fd_set *_Nullable restrict >I<writefds>B<,>\n"
+"B< fd_set *_Nullable restrict >I<exceptfds>B<,>\n"
+"B< const struct timespec *_Nullable restrict >I<timeout>B<,>\n"
+"B< const sigset_t *_Nullable restrict >I<sigmask>B<);>\n"
+msgstr ""
+"B<int pselect(int >I<nfds>B<, fd_set *restrict >I<readfds>B<,>\n"
+"B< fd_set *restrict >I<writefds>B<, fd_set *restrict >I<exceptfds>B<,>\n"
+"B< const struct timespec *restrict >I<timeout>B<,>\n"
+"B< const sigset_t *restrict >I<sigmask>B<);>\n"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"Feature Test Macro Requirements for glibc (see B<feature_test_macros>(7)):"
+msgstr ""
+"Требования макроса тестирования свойств для glibc (см. "
+"B<feature_test_macros>(7)):"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid "B<pselect>():"
+msgstr "B<pselect>():"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid " _POSIX_C_SOURCE E<gt>= 200112L\n"
+msgstr " _POSIX_C_SOURCE E<gt>= 200112L\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<WARNING>: B<select>() can monitor only file descriptors numbers that are "
+"less than B<FD_SETSIZE> (1024)\\[em]an unreasonably low limit for many "
+"modern applications\\[em]and this limitation will not change. All modern "
+"applications should instead use B<poll>(2) or B<epoll>(7), which do not "
+"suffer this limitation."
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, fuzzy
+#| msgid ""
+#| "B<select>() and B<pselect>() allow a program to monitor multiple file "
+#| "descriptors, waiting until one or more of the file descriptors become "
+#| "\"ready\" for some class of I/O operation (e.g., input possible). A file "
+#| "descriptor is considered ready if it is possible to perform a "
+#| "corresponding I/O operation (e.g., B<read>(2), or a sufficiently small "
+#| "B<write>(2)) without blocking."
+msgid ""
+"B<select>() allows a program to monitor multiple file descriptors, waiting "
+"until one or more of the file descriptors become \"ready\" for some class of "
+"I/O operation (e.g., input possible). A file descriptor is considered ready "
+"if it is possible to perform a corresponding I/O operation (e.g., "
+"B<read>(2), or a sufficiently small B<write>(2)) without blocking."
+msgstr ""
+"Вызовы B<select>() и B<pselect>() позволяют программам отслеживать изменения "
+"нескольких файловых дескрипторов ожидая, когда один или более файловых "
+"дескрипторов станут «готовы» для операции ввода-вывода определённого типа "
+"(например, ввода). Файловый дескриптор считается готовым, если к нему "
+"возможно применить соответствующую операцию ввода-вывода (например, "
+"B<read>(2) или очень маленький B<write>(2)) без блокировки."
+
+#. type: SS
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "fd_set"
+msgstr "fd_set"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"A structure type that can represent a set of file descriptors. According to "
+"POSIX, the maximum number of file descriptors in an I<fd_set> structure is "
+"the value of the macro B<FD_SETSIZE>."
+msgstr ""
+
+#. type: SS
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, fuzzy, no-wrap
+#| msgid "By file descriptor"
+msgid "File descriptor sets"
+msgstr "По файловому дескриптору"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"The principal arguments of B<select>() are three \"sets\" of file "
+"descriptors (declared with the type I<fd_set>), which allow the caller to "
+"wait for three classes of events on the specified set of file descriptors. "
+"Each of the I<fd_set> arguments may be specified as NULL if no file "
+"descriptors are to be watched for the corresponding class of events."
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, fuzzy
+#| msgid ""
+#| "On exit, each of the file descriptor sets is modified in place to "
+#| "indicate which file descriptors actually changed status. (Thus, if using "
+#| "B<select>() within a loop, the sets must be reinitialized before each "
+#| "call.)"
+msgid ""
+"B<Note well>: Upon return, each of the file descriptor sets is modified in "
+"place to indicate which file descriptors are currently \"ready\". Thus, if "
+"using B<select>() within a loop, the sets I<must be reinitialized> before "
+"each call."
+msgstr ""
+"При возврате из вызова наборы файловых дескрипторов изменяются, показывая "
+"какие файловые дескрипторы фактически изменили состояние (то есть, если "
+"используется B<select>() в цикле, то наборы должны переинициализироваться "
+"перед каждым вызовом)."
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"The contents of a file descriptor set can be manipulated using the following "
+"macros:"
+msgstr ""
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<FD_ZERO>()"
+msgstr "B<FD_ZERO>()"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"This macro clears (removes all file descriptors from) I<set>. It should be "
+"employed as the first step in initializing a file descriptor set."
+msgstr ""
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<FD_SET>()"
+msgstr "B<FD_SET>()"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"This macro adds the file descriptor I<fd> to I<set>. Adding a file "
+"descriptor that is already present in the set is a no-op, and does not "
+"produce an error."
+msgstr ""
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<FD_CLR>()"
+msgstr "B<FD_CLR>()"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"This macro removes the file descriptor I<fd> from I<set>. Removing a file "
+"descriptor that is not present in the set is a no-op, and does not produce "
+"an error."
+msgstr ""
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<FD_ISSET>()"
+msgstr "B<FD_ISSET>()"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"B<select>() modifies the contents of the sets according to the rules "
+"described below. After calling B<select>(), the B<FD_ISSET>() macro can be "
+"used to test if a file descriptor is still present in a set. B<FD_ISSET>() "
+"returns nonzero if the file descriptor I<fd> is present in I<set>, and zero "
+"if it is not."
+msgstr ""
+
+#. type: SS
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "Arguments"
+msgstr "Аргументы"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, fuzzy
+#| msgid "The elements of this structure are as follows:"
+msgid "The arguments of B<select>() are as follows:"
+msgstr "Элементы этой структуры имеют следующее назначение:"
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "I<readfds>"
+msgstr "I<readfds>"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"The file descriptors in this set are watched to see if they are ready for "
+"reading. A file descriptor is ready for reading if a read operation will "
+"not block; in particular, a file descriptor is also ready on end-of-file."
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, fuzzy
+#| msgid ""
+#| "This set is watched to see if data is available for reading from any of "
+#| "its file descriptors. After B<select>() has returned, I<readfds> will "
+#| "be cleared of all file descriptors except for those that are immediately "
+#| "available for reading."
+msgid ""
+"After B<select>() has returned, I<readfds> will be cleared of all file "
+"descriptors except for those that are ready for reading."
+msgstr ""
+"Этот набор служит для слежения за появлением данных, доступных для чтения из "
+"любого файлового дескриптора. После возврата из B<select>() в I<readfds> "
+"остаются только те дескрипторы файлов, из которых возможно немедленное "
+"чтение."
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "I<writefds>"
+msgstr "I<writefds>"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"The file descriptors in this set are watched to see if they are ready for "
+"writing. A file descriptor is ready for writing if a write operation will "
+"not block. However, even if a file descriptor indicates as writable, a "
+"large write may still block."
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, fuzzy
+#| msgid ""
+#| "This set is watched to see if there is space to write data to any of its "
+#| "file descriptors. After B<select>() has returned, I<writefds> will be "
+#| "cleared of all file descriptors except for those that are immediately "
+#| "available for writing."
+msgid ""
+"After B<select>() has returned, I<writefds> will be cleared of all file "
+"descriptors except for those that are ready for writing."
+msgstr ""
+"Этот набор служит для слежения за появлением места для записи данных в любой "
+"из файловых дескрипторов набора. После возврата из B<select>() в I<writefds> "
+"остаются только те файловые дескрипторы, в которые возможна немедленная "
+"запись."
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "I<exceptfds>"
+msgstr "I<exceptfds>"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"The file descriptors in this set are watched for \"exceptional "
+"conditions\". For examples of some exceptional conditions, see the "
+"discussion of B<POLLPRI> in B<poll>(2)."
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"After B<select>() has returned, I<exceptfds> will be cleared of all file "
+"descriptors except for those for which an exceptional condition has occurred."
+msgstr ""
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "I<nfds>"
+msgstr "I<nfds>"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, fuzzy
+#| msgid ""
+#| "I<nfds> should be set to the highest-numbered file descriptor in any of "
+#| "the three sets, plus 1. The indicated file descriptors in each set are "
+#| "checked, up to this limit (but see BUGS)."
+msgid ""
+"This argument should be set to the highest-numbered file descriptor in any "
+"of the three sets, plus 1. The indicated file descriptors in each set are "
+"checked, up to this limit (but see BUGS)."
+msgstr ""
+"Значение I<nfds> должно быть на единицу больше самого большого номера "
+"файлового дескриптора из всех трёх наборов плюс 1. Указанные файловые "
+"дескрипторы в каждом наборе проверяются до этого порога (но смотрите "
+"ДЕФЕКТЫ)."
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "I<timeout>"
+msgstr "I<timeout>"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, fuzzy
+#| msgid ""
+#| "The I<timeout> argument specifies the interval that B<select>() should "
+#| "block waiting for a file descriptor to become ready. The call will block "
+#| "until either:"
+msgid ""
+"The I<timeout> argument is a I<timeval> structure (shown below) that "
+"specifies the interval that B<select>() should block waiting for a file "
+"descriptor to become ready. The call will block until either:"
+msgstr ""
+"В аргументе I<timeout> указывается интервал, на который должен "
+"заблокироваться B<select>() в ожидании готовности файлового дескриптора. "
+"Вызов будет блокирован пока:"
+
+#. 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 "a file descriptor becomes ready;"
+msgstr "файловый дескриптор не станет готов;"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid "the call is interrupted by a signal handler; or"
+msgstr "вызов не прервётся обработчиком сигнала;"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid "the timeout expires."
+msgstr "не истечёт время ожидания."
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, fuzzy
+#| msgid ""
+#| "Note that the I<timeout> interval will be rounded up to the system clock "
+#| "granularity, and kernel scheduling delays mean that the blocking interval "
+#| "may overrun by a small amount. If both fields of the I<timeval> "
+#| "structure are zero, then B<select>() returns immediately. (This is "
+#| "useful for polling.) If I<timeout> is NULL (no timeout), B<select>() "
+#| "can block indefinitely."
+msgid ""
+"Note that the I<timeout> interval will be rounded up to the system clock "
+"granularity, and kernel scheduling delays mean that the blocking interval "
+"may overrun by a small amount."
+msgstr ""
+"Заметим, что интервал I<timeout> будет округлён с точностью системных часов, "
+"а из-за задержки при планировании в ядре блокирующий интервал будет немного "
+"больше. Если оба поля структуры I<timeval> равны нулю, то B<select>() "
+"завершится немедленно (полезно при опросе (polling)). Если значение "
+"I<timeout> равно NULL (время ожидания не задано), то B<select>() может "
+"блокировать работу неопределённо долго."
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"If both fields of the I<timeval> structure are zero, then B<select>() "
+"returns immediately. (This is useful for polling.)"
+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<timeout> argument specifies the interval that B<select>() should "
+#| "block waiting for a file descriptor to become ready. The call will block "
+#| "until either:"
+msgid ""
+"If I<timeout> is specified as NULL, B<select>() blocks indefinitely waiting "
+"for a file descriptor to become ready."
+msgstr ""
+"В аргументе I<timeout> указывается интервал, на который должен "
+"заблокироваться B<select>() в ожидании готовности файлового дескриптора. "
+"Вызов будет блокирован пока:"
+
+#. type: SS
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "pselect()"
+msgstr "pselect()"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"The B<pselect>() system call allows an application to safely wait until "
+"either a file descriptor becomes ready or until a signal is caught."
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"The operation of B<select>() and B<pselect>() is identical, other than "
+"these three differences:"
+msgstr ""
+"Работа B<select>() и B<pselect>() идентична за исключением трёх моментов:"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"B<select>() uses a timeout that is a I<struct timeval> (with seconds and "
+"microseconds), while B<pselect>() uses a I<struct timespec> (with seconds "
+"and nanoseconds)."
+msgstr ""
+"В вызове B<select>() время ожидания задаётся в структуре I<struct timeval> "
+"(с секундами и микросекундами), а в B<pselect>() используется структура "
+"I<struct timespec> (с секундами и наносекундами)."
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"B<select>() may update the I<timeout> argument to indicate how much time "
+"was left. B<pselect>() does not change this argument."
+msgstr ""
+"Вызов B<select>() может обновить аргумент I<timeout>, который показывает "
+"сколько времени прошло. Вызов B<pselect>() не изменяет этот аргумент."
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"B<select>() has no I<sigmask> argument, and behaves as B<pselect>() called "
+"with NULL I<sigmask>."
+msgstr ""
+"Вызов B<select>() не имеет аргумента I<sigmask>, и ведёт себя также как "
+"B<pselect>(), если при вызове было указано значение I<sigmask> равное NULL."
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, fuzzy
+#| msgid ""
+#| "I<sigmask> is a pointer to a signal mask (see B<sigprocmask>(2)); if it "
+#| "is not NULL, then B<pselect>() first replaces the current signal mask by "
+#| "the one pointed to by I<sigmask>, then does the \"select\" function, and "
+#| "then restores the original signal mask."
+msgid ""
+"I<sigmask> is a pointer to a signal mask (see B<sigprocmask>(2)); if it is "
+"not NULL, then B<pselect>() first replaces the current signal mask by the "
+"one pointed to by I<sigmask>, then does the \"select\" function, and then "
+"restores the original signal mask. (If I<sigmask> is NULL, the signal mask "
+"is not modified during the B<pselect>() call.)"
+msgstr ""
+"Значение I<sigmask> является указателем на маску сигналов (смотрите "
+"B<sigprocmask>(2)); если оно не равно NULL, то сначала B<pselect>() заменяет "
+"текущую маску сигналов на заданную I<sigmask>, затем выполняет функцию "
+"«select», после чего восстанавливает первоначальную сигнальную маску."
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"Other than the difference in the precision of the I<timeout> argument, the "
+"following B<pselect>() call:"
+msgstr "Кроме различия в точности аргумента I<timeout> вызов B<pselect>()"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid ""
+"ready = pselect(nfds, &readfds, &writefds, &exceptfds,\n"
+" timeout, &sigmask);\n"
+msgstr ""
+"ready = pselect(nfds, &readfds, &writefds, &exceptfds,\n"
+" timeout, &sigmask);\n"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid "is equivalent to I<atomically> executing the following calls:"
+msgstr "эквивалентен I<атомарному> выполнению следующих вызовов:"
+
+#. type: Plain text
+#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron
+#: opensuse-tumbleweed
+#, fuzzy, no-wrap
+#| msgid ""
+#| "pthread_sigmask(SIG_SETMASK, &sigmask, &origmask);\n"
+#| "ready = select(nfds, &readfds, &writefds, &exceptfds, timeout);\n"
+#| "pthread_sigmask(SIG_SETMASK, &origmask, NULL);\n"
+msgid ""
+"sigset_t origmask;\n"
+"\\&\n"
+"pthread_sigmask(SIG_SETMASK, &sigmask, &origmask);\n"
+"ready = select(nfds, &readfds, &writefds, &exceptfds, timeout);\n"
+"pthread_sigmask(SIG_SETMASK, &origmask, NULL);\n"
+msgstr ""
+"pthread_sigmask(SIG_SETMASK, &sigmask, &origmask);\n"
+"ready = select(nfds, &readfds, &writefds, &exceptfds, timeout);\n"
+"pthread_sigmask(SIG_SETMASK, &origmask, NULL);\n"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"The reason that B<pselect>() is needed is that if one wants to wait for "
+"either a signal or for a file descriptor to become ready, then an atomic "
+"test is needed to prevent race conditions. (Suppose the signal handler sets "
+"a global flag and returns. Then a test of this global flag followed by a "
+"call of B<select>() could hang indefinitely if the signal arrived just "
+"after the test but just before the call. By contrast, B<pselect>() allows "
+"one to first block signals, handle the signals that have come in, then call "
+"B<pselect>() with the desired I<sigmask>, avoiding the race.)"
+msgstr ""
+"Причина необходимости B<pselect>() в том, что если нужно ждать какого-то "
+"сигнала или готовности файлового дескриптора, то необходимо атомарное "
+"тестирование для избежания состязательности. (Предположим, что обработчик "
+"сигнала устанавливает глобальный флаг и завершается. В этом случае тест "
+"этого глобального флага после вызова B<select>() мог бы длиться бесконечно, "
+"если сигнал прибыл бы сразу после тестирования, но до вызова. В отличие от "
+"этого, B<pselect>() позволяет сначала заблокировать сигналы, обработать уже "
+"поступившие и затем вызвать B<pselect>() с желаемым значением I<sigmask>, "
+"избегая состязательности.)"
+
+#. type: SS
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "The timeout"
+msgstr "Время ожидания"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, fuzzy
+#| msgid "The file timestamps are structures of the following type:"
+msgid ""
+"The I<timeout> argument for B<select>() is a structure of the following "
+"type:"
+msgstr "Метки времени файла хранятся в структуре следующего вида:"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid ""
+"struct timeval {\n"
+" time_t tv_sec; /* seconds */\n"
+" suseconds_t tv_usec; /* microseconds */\n"
+"};\n"
+msgstr ""
+"struct timeval {\n"
+" time_t tv_sec; /* секунды */\n"
+" suseconds_t tv_usec; /* микросекунды */\n"
+"};\n"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"The corresponding argument for B<pselect>() is a B<timespec>(3) structure."
+msgstr ""
+
+#. #-#-#-#-# archlinux: select.2.pot (PACKAGE VERSION) #-#-#-#-#
+#. .P - it is rumored that:
+#. On BSD, when a timeout occurs, the file descriptor bits are not changed.
+#. - it is certainly true that:
+#. Linux follows SUSv2 and sets the bit masks to zero upon a timeout.
+#. type: Plain text
+#. #-#-#-#-# debian-bookworm: select.2.pot (PACKAGE VERSION) #-#-#-#-#
+#. .PP - it is rumored that:
+#. On BSD, when a timeout occurs, the file descriptor bits are not changed.
+#. - it is certainly true that:
+#. Linux follows SUSv2 and sets the bit masks to zero upon a timeout.
+#. type: Plain text
+#. #-#-#-#-# debian-unstable: select.2.pot (PACKAGE VERSION) #-#-#-#-#
+#. .PP - it is rumored that:
+#. On BSD, when a timeout occurs, the file descriptor bits are not changed.
+#. - it is certainly true that:
+#. Linux follows SUSv2 and sets the bit masks to zero upon a timeout.
+#. type: Plain text
+#. #-#-#-#-# fedora-40: select.2.pot (PACKAGE VERSION) #-#-#-#-#
+#. .P - it is rumored that:
+#. On BSD, when a timeout occurs, the file descriptor bits are not changed.
+#. - it is certainly true that:
+#. Linux follows SUSv2 and sets the bit masks to zero upon a timeout.
+#. type: Plain text
+#. #-#-#-#-# fedora-rawhide: select.2.pot (PACKAGE VERSION) #-#-#-#-#
+#. .P - it is rumored that:
+#. On BSD, when a timeout occurs, the file descriptor bits are not changed.
+#. - it is certainly true that:
+#. Linux follows SUSv2 and sets the bit masks to zero upon a timeout.
+#. type: Plain text
+#. #-#-#-#-# mageia-cauldron: select.2.pot (PACKAGE VERSION) #-#-#-#-#
+#. .P - it is rumored that:
+#. On BSD, when a timeout occurs, the file descriptor bits are not changed.
+#. - it is certainly true that:
+#. Linux follows SUSv2 and sets the bit masks to zero upon a timeout.
+#. type: Plain text
+#. #-#-#-#-# opensuse-leap-15-6: select.2.pot (PACKAGE VERSION) #-#-#-#-#
+#. .PP - it is rumored that:
+#. On BSD, when a timeout occurs, the file descriptor bits are not changed.
+#. - it is certainly true that:
+#. Linux follows SUSv2 and sets the bit masks to zero upon a timeout.
+#. type: Plain text
+#. #-#-#-#-# opensuse-tumbleweed: select.2.pot (PACKAGE VERSION) #-#-#-#-#
+#. .PP - it is rumored that:
+#. On BSD, when a timeout occurs, the file descriptor bits are not changed.
+#. - it is certainly true that:
+#. Linux follows SUSv2 and sets the bit masks to zero upon a timeout.
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"On Linux, B<select>() modifies I<timeout> to reflect the amount of time not "
+"slept; most other implementations do not do this. (POSIX.1 permits either "
+"behavior.) This causes problems both when Linux code which reads I<timeout> "
+"is ported to other operating systems, and when code is ported to Linux that "
+"reuses a I<struct timeval> for multiple B<select>()s in a loop without "
+"reinitializing it. Consider I<timeout> to be undefined after B<select>() "
+"returns."
+msgstr ""
+"В Linux вызов B<select>() изменяет I<timeout> для отражения времени, "
+"проведённого не в режиме ожидания; большая часть других реализаций этого не "
+"делает (согласно POSIX.1 допускается любой из этих вариантов). Это вызывает "
+"проблемы как при переносе кода Linux, читающего I<timeout>, на другие "
+"операционные системы, так и при переносе на Linux кода, использующего "
+"I<struct timeval> для многократного вызова B<select>() в цикле без его "
+"переинициализации. Во избежание этого следует считать, что значение "
+"I<timeout> не определено после возврата из B<select>()."
+
+#. 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, B<select>() and B<pselect>() return the number of file "
+#| "descriptors contained in the three returned descriptor sets (that is, the "
+#| "total number of bits that are set in I<readfds>, I<writefds>, "
+#| "I<exceptfds>) which may be zero if the timeout expires before anything "
+#| "interesting happens. On error, -1 is returned, and I<errno> is set to "
+#| "indicate the error; the file descriptor sets are unmodified, and "
+#| "I<timeout> becomes undefined."
+msgid ""
+"On success, B<select>() and B<pselect>() return the number of file "
+"descriptors contained in the three returned descriptor sets (that is, the "
+"total number of bits that are set in I<readfds>, I<writefds>, "
+"I<exceptfds>). The return value may be zero if the timeout expired before "
+"any file descriptors became ready."
+msgstr ""
+"При успешном выполнении B<select>() и B<pselect>() возвращают количество "
+"файловых дескрипторов, находящихся в трёх возвращаемых наборах (то есть, "
+"общее количество бит, установленных в I<readfds>, I<writefds>, "
+"I<exceptfds>), при чём это количество может быть нулевым, если время "
+"ожидания истекло, а интересующие события так и не произошли. При ошибке "
+"возвращается значение -1, а переменной I<errno> присваивается "
+"соответствующий номер ошибки; наборы файловых дескрипторов не изменяются и "
+"значение I<timeout> становится неопределённым."
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, fuzzy
+#| msgid ""
+#| "On error, -1 is returned and I<errno> is set to indicate the cause of the "
+#| "error (for example, B<EINVAL>, indicating that I<name> is invalid)."
+msgid ""
+"On error, -1 is returned, and I<errno> is set to indicate the error; the "
+"file descriptor sets are unmodified, and I<timeout> becomes undefined."
+msgstr ""
+"При ошибке возвращается -1, а в I<errno> содержится код ошибки (например, "
+"B<EINVAL> означает, что некорректно I<name>)."
+
+#. 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 ""
+"An invalid file descriptor was given in one of the sets. (Perhaps a file "
+"descriptor that was already closed, or one on which an error has occurred.) "
+"However, see BUGS."
+msgstr ""
+"В одном из наборов находится неверный файловый дескриптор (возможно файловый "
+"дескриптор уже закрыт, или при работе с ним произошла ошибка). Однако "
+"смотрите ДЕФЕКТЫ."
+
+#. 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 "A signal was caught; see B<signal>(7)."
+msgstr "При выполнении поступил сигнал; см. 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 ""
+"I<nfds> is negative or exceeds the B<RLIMIT_NOFILE> resource limit (see "
+"B<getrlimit>(2))."
+msgstr ""
+"Значение I<nfds> отрицательно или превышает ограничение ресурса "
+"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 "The value contained within I<timeout> is invalid."
+msgstr "Значение, содержащееся внутри I<timeout>, некорректно."
+
+#. 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 "Unable to allocate memory for internal tables."
+msgstr "Не удалось выделить память для внутренних таблиц."
+
+#. type: SH
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "VERSIONS"
+msgstr "ВЕРСИИ"
+
+#. Darwin, according to a report by Jeremy Sequoia, relayed by Josh Triplett
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"On some other UNIX systems, B<select>() can fail with the error B<EAGAIN> "
+"if the system fails to allocate kernel-internal resources, rather than "
+"B<ENOMEM> as Linux does. POSIX specifies this error for B<poll>(2), but not "
+"for B<select>(). Portable programs may wish to check for B<EAGAIN> and "
+"loop, just as with B<EINTR>."
+msgstr ""
+"В некоторых системах UNIX вызов B<select>() может завершаться с ошибкой "
+"B<EAGAIN>, если системе не удаётся выделить внутренние ресурсы ядра, вместо "
+"ошибки B<ENOMEM>, как это происходит в Linux. В POSIX эта ошибка указана для "
+"B<poll>(2), но не для B<select>(). В переносимых программах лучше ожидать "
+"B<EAGAIN> в цикле, как для B<EINTR>."
+
+#. 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."
+
+#. type: SH
+#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron
+#: opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "HISTORY"
+msgstr "ИСТОРИЯ"
+
+#. type: TP
+#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron
+#: opensuse-leap-15-6 opensuse-tumbleweed
+#, fuzzy, no-wrap
+#| msgid "B<select>(2)"
+msgid "B<select>()"
+msgstr "B<select>(2)"
+
+#. type: Plain text
+#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron
+#: opensuse-leap-15-6 opensuse-tumbleweed
+#, fuzzy
+#| msgid "POSIX.1-2001, SVr4, 4.3BSD."
+msgid "POSIX.1-2001, 4.4BSD (first appeared in 4.2BSD)."
+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
+#, fuzzy
+#| msgid ""
+#| "B<select>() conforms to POSIX.1-2001, POSIX.1-2008, and 4.4BSD "
+#| "(B<select>() first appeared in 4.2BSD). Generally portable to/from non-"
+#| "BSD systems supporting clones of the BSD socket layer (including System\\ "
+#| "V variants). However, note that the System\\ V variant typically sets "
+#| "the timeout variable before exit, but the BSD variant does not."
+msgid ""
+"Generally portable to/from non-BSD systems supporting clones of the BSD "
+"socket layer (including System\\ V variants). However, note that the "
+"System\\ V variant typically sets the timeout variable before returning, but "
+"the BSD variant does not."
+msgstr ""
+"Вызов B<select>() соответствует POSIX.1-2001, POSIX.1-2008 и 4.4BSD (впервые "
+"B<select>() появился в 4.2BSD). Обычно перенос выполняется с не-BSD систем "
+"и на них, если они поддерживают уровень BSD-сокетов (включая варианты System "
+"V). Однако, заметим, что вариант System V, обычно, устанавливает значение "
+"переменной timeout перед выходом, а вариант BSD - нет."
+
+#. type: TP
+#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron
+#: opensuse-leap-15-6 opensuse-tumbleweed
+#, fuzzy, no-wrap
+#| msgid "B<pselect>():"
+msgid "B<pselect>()"
+msgstr "B<pselect>():"
+
+#. type: Plain text
+#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron
+#: opensuse-leap-15-6 opensuse-tumbleweed
+#, fuzzy
+#| msgid "glibc 2.1. C99, POSIX.1-2001."
+msgid "Linux 2.6.16. POSIX.1g, POSIX.1-2001."
+msgstr "glibc 2.1. C99, POSIX.1-2001."
+
+#. type: Plain text
+#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron
+#: opensuse-leap-15-6 opensuse-tumbleweed
+#, fuzzy
+#| msgid ""
+#| "B<pselect>() was added to Linux in kernel 2.6.16. Prior to this, "
+#| "B<pselect>() was emulated in glibc (but see BUGS)."
+msgid "Prior to this, it was emulated in glibc (but see BUGS)."
+msgstr ""
+"Вызов B<pselect>() был добавлен в ядро Linux версии 2.6.16. До этого "
+"B<pselect>() эмулировался в glibc (но, см. ДЕФЕКТЫ)."
+
+#. type: TP
+#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron
+#: opensuse-leap-15-6 opensuse-tumbleweed
+#, fuzzy, no-wrap
+#| msgid "fd_set"
+msgid "B<fd_set>"
+msgstr "fd_set"
+
+#. type: Plain text
+#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron
+#: opensuse-leap-15-6 opensuse-tumbleweed
+msgid "POSIX.1-2001."
+msgstr "POSIX.1-2001."
+
+#. 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 following header also provides the I<fd_set> type: I<E<lt>sys/time."
+"hE<gt>>."
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"An I<fd_set> is a fixed size buffer. Executing B<FD_CLR>() or B<FD_SET>() "
+"with a value of I<fd> that is negative or is equal to or larger than "
+"B<FD_SETSIZE> will result in undefined behavior. Moreover, POSIX requires "
+"I<fd> to be a valid file descriptor."
+msgstr ""
+"I<fd_set> представляет собой буфер фиксированного размера. Выполнение "
+"B<FD_CLR>() или B<FD_SET>() с отрицательным значением I<fd>, равным или "
+"большим чем B<FD_SETSIZE>, приводит к неопределённому поведению. Более того, "
+"согласно POSIX I<fd> должен быть корректным файловым дескриптором."
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"The operation of B<select>() and B<pselect>() is not affected by the "
+"B<O_NONBLOCK> flag."
+msgstr "На операции B<select>() и B<pselect>() флаг B<O_NONBLOCK> не влияет."
+
+#. type: SS
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "The self-pipe trick"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"On systems that lack B<pselect>(), reliable (and more portable) signal "
+"trapping can be achieved using the self-pipe trick. In this technique, a "
+"signal handler writes a byte to a pipe whose other end is monitored by "
+"B<select>() in the main program. (To avoid possibly blocking when writing "
+"to a pipe that may be full or reading from a pipe that may be empty, "
+"nonblocking I/O is used when reading from and writing to the pipe.)"
+msgstr ""
+"В системах без B<pselect>(), надёжного (и более переносимого) перехвата "
+"сигнала можно достичь с помощью трюка с каналом в самого себя. В этом методе "
+"обработчик сигнала пишет байт в канал, чей второй конец отслеживается "
+"B<select>() в основной программе (чтобы избежать возможной блокировки при "
+"записи в канал, который может быть заполнен, или при чтении из канала, "
+"который может быть пуст, нужно использовать неблокирующий ввод/вывод)."
+
+#. type: SS
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "Emulating usleep(3)"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, fuzzy
+#| msgid ""
+#| "Some code calls B<select>() with all three sets empty, I<nfds> zero, and "
+#| "a non-NULL I<timeout> as a fairly portable way to sleep with subsecond "
+#| "precision."
+msgid ""
+"Before the advent of B<usleep>(3), some code employed a call to B<select>() "
+"with all three sets empty, I<nfds> zero, and a non-NULL I<timeout> as a "
+"fairly portable way to sleep with subsecond precision."
+msgstr ""
+"Иногда B<select>() вызывается с пустыми наборами (всеми тремя), I<nfds> "
+"равным нулю и непустым I<timeout> для переносимой реализации перехода в "
+"режим ожидания (sleep) на периоды с точностью менее секунды."
+
+#. type: SS
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "Correspondence between select() and poll() notifications"
+msgstr "Соотношение между уведомлениями select() и poll()"
+
+#. fs/select.c
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"Within the Linux kernel source, we find the following definitions which show "
+"the correspondence between the readable, writable, and exceptional condition "
+"notifications of B<select>() and the event notifications provided by "
+"B<poll>(2) and B<epoll>(7):"
+msgstr ""
+"Внутри исходного кода ядра Linux имеются определения, которые показывают "
+"соотношение между уведомлениями чтения, записи и исключительного условия "
+"B<select>() и уведомляющими событиями, предоставляемыми B<poll>(2) и "
+"B<epoll>(7):"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, fuzzy, no-wrap
+#| msgid ""
+#| "#define POLLIN_SET (POLLRDNORM | POLLRDBAND | POLLIN | POLLHUP |\n"
+#| " POLLERR)\n"
+#| " /* Ready for reading */\n"
+#| "#define POLLOUT_SET (POLLWRBAND | POLLWRNORM | POLLOUT | POLLERR)\n"
+#| " /* Ready for writing */\n"
+#| "#define POLLEX_SET (POLLPRI)\n"
+#| " /* Exceptional condition */\n"
+msgid ""
+"#define POLLIN_SET (EPOLLRDNORM | EPOLLRDBAND | EPOLLIN |\n"
+" EPOLLHUP | EPOLLERR)\n"
+" /* Ready for reading */\n"
+"#define POLLOUT_SET (EPOLLWRBAND | EPOLLWRNORM | EPOLLOUT |\n"
+" EPOLLERR)\n"
+" /* Ready for writing */\n"
+"#define POLLEX_SET (EPOLLPRI)\n"
+" /* Exceptional condition */\n"
+msgstr ""
+"#define POLLIN_SET (POLLRDNORM | POLLRDBAND | POLLIN | POLLHUP |\n"
+" POLLERR)\n"
+" /* готов для чтения */\n"
+"#define POLLOUT_SET (POLLWRBAND | POLLWRNORM | POLLOUT | POLLERR)\n"
+" /* готов для записи */\n"
+"#define POLLEX_SET (POLLPRI)\n"
+" /* исключительное условие */\n"
+
+#. type: SS
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "Multithreaded applications"
+msgstr "Многонитевые приложения"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"If a file descriptor being monitored by B<select>() is closed in another "
+"thread, the result is unspecified. On some UNIX systems, B<select>() "
+"unblocks and returns, with an indication that the file descriptor is ready "
+"(a subsequent I/O operation will likely fail with an error, unless another "
+"process reopens the file descriptor between the time B<select>() returned "
+"and the I/O operation is performed). On Linux (and some other systems), "
+"closing the file descriptor in another thread has no effect on B<select>(). "
+"In summary, any application that relies on a particular behavior in this "
+"scenario must be considered buggy."
+msgstr ""
+"Если файловой дескриптор, отслеживаемый B<select>(), закрывается в другой "
+"нити, то результат непредсказуем. В некоторых системах UNIX B<select>() "
+"разблокируется и возвращает выполнение с указанием того, что файловый "
+"дескриптор готов (последующая операция ввода-вывода, вероятно, завершится с "
+"ошибкой, если другой процесс не переоткроет файловый дескриптор между "
+"возвратом B<select>() и выполнением операции ввода-вывода). В Linux (и "
+"некоторых других системах), закрытие файлового дескриптора в другой нити не "
+"влияет на B<select>(). Резюмируя, любое приложение, которое полагается на "
+"определённое поведение в таком сценарии, должно считаться ошибочным."
+
+#. type: SS
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "C library/kernel differences"
+msgstr "Отличия между библиотекой C и ядром"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"The Linux kernel allows file descriptor sets of arbitrary size, determining "
+"the length of the sets to be checked from the value of I<nfds>. However, in "
+"the glibc implementation, the I<fd_set> type is fixed in size. See also "
+"BUGS."
+msgstr ""
+"Ядро Linux разрешает наборы файловых дескрипторов любого размера, определяя "
+"длину набора по значению I<nfds>. Однако в реализации glibc тип I<fd_set> "
+"имеет фиксированный размер. Смотрите также ДЕФЕКТЫ."
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"The B<pselect>() interface described in this page is implemented by glibc. "
+"The underlying Linux system call is named B<pselect6>(). This system call "
+"has somewhat different behavior from the glibc wrapper function."
+msgstr ""
+"Интерфейс B<pselect>(), описанный в этой странице, реализован в glibc. Для "
+"этого используется системный вызов B<pselect6>(). Поведение данного "
+"системного вызова несколько отличается от обёрточной функции glibc."
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"The Linux B<pselect6>() system call modifies its I<timeout> argument. "
+"However, the glibc wrapper function hides this behavior by using a local "
+"variable for the timeout argument that is passed to the system call. Thus, "
+"the glibc B<pselect>() function does not modify its I<timeout> argument; "
+"this is the behavior required by POSIX.1-2001."
+msgstr ""
+"В Linux системный вызов B<pselect6>() изменяет содержимое своего аргумента "
+"I<timeout>. Однако, обёрточная функция glibc скрывает это поведение "
+"используя локальную переменную для аргумента timeout при передаче в "
+"системный вызов. Таким образом, функция B<pselect>() в glibc не изменяет "
+"свой аргумент I<timeout>; это поведение требуется в POSIX.1-2001."
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"The final argument of the B<pselect6>() system call is not a I<sigset_t\\ "
+"*> pointer, but is instead a structure of the form:"
+msgstr ""
+"Последний аргумент системного вызова B<pselect6>() не является указателем "
+"I<sigset_t\\ *>, он представляет собой структуру в виде:"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, fuzzy, no-wrap
+#| msgid ""
+#| "struct {\n"
+#| " const kernel_sigset_t *ss; /* Pointer to signal set */\n"
+#| " size_t ss_len; /* Size (in bytes) of object\n"
+#| " pointed to by \\(aqss\\(aq */\n"
+#| "};\n"
+msgid ""
+"struct {\n"
+" const kernel_sigset_t *ss; /* Pointer to signal set */\n"
+" size_t ss_len; /* Size (in bytes) of object\n"
+" pointed to by \\[aq]ss\\[aq] */\n"
+"};\n"
+msgstr ""
+"struct {\n"
+" const kernel_sigset_t *ss; /* указатель на набор сигналов */\n"
+" size_t ss_len; /* размер (в байтах) объекта,\n"
+" на который указывает \\(aqss\\(aq */\n"
+"};\n"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"This allows the system call to obtain both a pointer to the signal set and "
+"its size, while allowing for the fact that most architectures support a "
+"maximum of 6 arguments to a system call. See B<sigprocmask>(2) for a "
+"discussion of the difference between the kernel and libc notion of the "
+"signal set."
+msgstr ""
+"Это позволяет системному вызову получить указатель на набор сигналов и его "
+"размер, так как в большинстве архитектур системным вызовам можно передать "
+"максимум 6 аргументов. В B<sigprocmask>(2) смотрите описание различий между "
+"обозначением набора сигналов в ядре и libc."
+
+#. type: SS
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, fuzzy, no-wrap
+#| msgid "Historical details"
+msgid "Historical glibc details"
+msgstr "Историческая справка"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, fuzzy
+#| msgid ""
+#| "Glibc 2.0 provided a version of B<pselect>() that did not take a "
+#| "I<sigmask> argument."
+msgid ""
+"glibc 2.0 provided an incorrect version of B<pselect>() that did not take a "
+"I<sigmask> argument."
+msgstr ""
+"Glibc 2.0 предоставляет версию B<pselect>(), которая не принимает аргумент "
+"I<sigmask>."
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"From glibc 2.1 to glibc 2.2.1, one must define B<_GNU_SOURCE> in order to "
+"obtain the declaration of B<pselect>() from I<E<lt>sys/select.hE<gt>>."
+msgstr ""
+
+#. 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: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, fuzzy
+#| msgid ""
+#| "POSIX allows an implementation to define an upper limit, advertised via "
+#| "the constant B<FD_SETSIZE>, on the range of file descriptors that can be "
+#| "specified in a file descriptor set. The Linux kernel imposes no fixed "
+#| "limit, but the glibc implementation makes I<fd_set> a fixed-size type, "
+#| "with B<FD_SETSIZE> defined as 1024, and the B<FD_*>() macros operating "
+#| "according to that limit. To monitor file descriptors greater than 1023, "
+#| "use B<poll>(2) instead."
+msgid ""
+"POSIX allows an implementation to define an upper limit, advertised via the "
+"constant B<FD_SETSIZE>, on the range of file descriptors that can be "
+"specified in a file descriptor set. The Linux kernel imposes no fixed "
+"limit, but the glibc implementation makes I<fd_set> a fixed-size type, with "
+"B<FD_SETSIZE> defined as 1024, and the B<FD_*>() macros operating according "
+"to that limit. To monitor file descriptors greater than 1023, use "
+"B<poll>(2) or B<epoll>(7) instead."
+msgstr ""
+"В POSIX разрешено в реализации определять верхнее ограничение, объявляемое "
+"через константу B<FD_SETSIZE>, для диапазона файловых дескрипторов, который "
+"можно задать в наборе файловых дескрипторов. Ядро Linux не имеет "
+"фиксированного ограничения, но реализация glibc использует тип I<fd_set> "
+"постоянного размера, определяет B<FD_SETSIZE> равным 1024, а также "
+"предоставляет набор макросов операций B<FD_*>(), учитывающих это "
+"ограничение. Для слежения за файловыми дескрипторами большими чем 1023 "
+"используйте вызов 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 implementation of the I<fd_set> arguments as value-result arguments "
+#| "means that they must be reinitialized on each call to B<select>(). This "
+#| "design error is avoided by B<poll>(2), which uses separate structure "
+#| "fields for the input and output of the call."
+msgid ""
+"The implementation of the I<fd_set> arguments as value-result arguments is a "
+"design error that is avoided in B<poll>(2) and B<epoll>(7)."
+msgstr ""
+"Реализация аргументов I<fd_set> в виде аргументов значение-результат "
+"означает, что они должен инициализироваться перед каждым вызовом "
+"B<select>(). Такой ошибки проектирования избежали в B<poll>(2), где "
+"используется отдельные поля структуры для входных и выходных параметров "
+"вызова."
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"According to POSIX, B<select>() should check all specified file descriptors "
+"in the three file descriptor sets, up to the limit I<nfds-1>. However, the "
+"current implementation ignores any file descriptor in these sets that is "
+"greater than the maximum file descriptor number that the process currently "
+"has open. According to POSIX, any such file descriptor that is specified in "
+"one of the sets should result in the error B<EBADF>."
+msgstr ""
+"Согласно POSIX, B<select>() должен проверять все файловые дескрипторы, "
+"указанные в трёх наборах файловых дескрипторов до верхнего порога I<nfds-1>. "
+"Однако текущая реализация игнорирует любой файловый дескриптор в этих "
+"наборах, значение которого больше максимального номера файлового "
+"дескриптора, который в настоящий момент открыт процессом. Согласно POSIX, "
+"такой файловый дескриптор, указанный в любом наборе, должен приводить к "
+"ошибке B<EBADF>."
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, fuzzy
+#| msgid ""
+#| "Starting with version 2.1, glibc provided an emulation of B<pselect>() "
+#| "that was implemented using B<sigprocmask>(2) and B<select>(). This "
+#| "implementation remained vulnerable to the very race condition that "
+#| "B<pselect>() was designed to prevent. Modern versions of glibc use the "
+#| "(race-free) B<pselect>() system call on kernels where it is provided."
+msgid ""
+"Starting with glibc 2.1, glibc provided an emulation of B<pselect>() that "
+"was implemented using B<sigprocmask>(2) and B<select>(). This "
+"implementation remained vulnerable to the very race condition that "
+"B<pselect>() was designed to prevent. Modern versions of glibc use the "
+"(race-free) B<pselect>() system call on kernels where it is provided."
+msgstr ""
+"Начиная с версии 2.1, glibc предоставляет эмуляцию B<pselect>(), которая "
+"реализована с помощью B<sigprocmask>(2) и B<select>(). Эта реализация "
+"остаётся уязвимой к той самой состязательности, для устранения которой и был "
+"разработан B<pselect>(). В современных версии glibc используется "
+"(бессостязательный) системный вызов B<pselect>(), если он предоставляется "
+"ядром."
+
+#. Stevens discusses a case where accept can block after select
+#. returns successfully because of an intervening RST from the client.
+#. Maybe the kernel should have returned EIO in such a situation?
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, fuzzy
+#| msgid ""
+#| "Under Linux, B<select>() may report a socket file descriptor as \"ready "
+#| "for reading\", while nevertheless a subsequent read blocks. This could "
+#| "for example happen when data has arrived but upon examination has wrong "
+#| "checksum and is discarded. There may be other circumstances in which a "
+#| "file descriptor is spuriously reported as ready. Thus it may be safer to "
+#| "use B<O_NONBLOCK> on sockets that should not block."
+msgid ""
+"On Linux, B<select>() may report a socket file descriptor as \"ready for "
+"reading\", while nevertheless a subsequent read blocks. This could for "
+"example happen when data has arrived but upon examination has the wrong "
+"checksum and is discarded. There may be other circumstances in which a file "
+"descriptor is spuriously reported as ready. Thus it may be safer to use "
+"B<O_NONBLOCK> on sockets that should not block."
+msgstr ""
+"В Linux, вызов B<select>() может сообщать о файловом дескрипторе сокета как "
+"о «готовом для чтения», хотя при последующем чтении произойдёт блокировка. "
+"Это может случиться, например, когда данные прибыли, но при анализе их "
+"контрольная сумма не совпала и они были отброшены. Также могут быть другие "
+"обстоятельства, при которых файловый дескриптор ошибочно считается готовым. "
+"Поэтому, возможно безопасней будет использовать для сокетов B<O_NONBLOCK>, "
+"которые не должны блокироваться."
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"On Linux, B<select>() also modifies I<timeout> if the call is interrupted "
+"by a signal handler (i.e., the B<EINTR> error return). This is not "
+"permitted by POSIX.1. The Linux B<pselect>() system call has the same "
+"behavior, but the glibc wrapper hides this behavior by internally copying "
+"the I<timeout> to a local variable and passing that variable to the system "
+"call."
+msgstr ""
+"В Linux, вызов B<select>() также изменяет I<timeout>, если он прерван "
+"обработчиком сигнала (т. е., возвращается ошибка B<EINTR>). Согласно POSIX.1 "
+"это не разрешено. В Linux системный вызов B<pselect>() действует также, но "
+"обёртка glibc скрывает это поведение копируя перед вызовом I<timeout> в "
+"локальную переменную и передавая её в системный вызов."
+
+#. 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-unstable fedora-40 fedora-rawhide mageia-cauldron
+#: opensuse-tumbleweed
+#, no-wrap
+msgid ""
+"#include E<lt>stdio.hE<gt>\n"
+"#include E<lt>stdlib.hE<gt>\n"
+"#include E<lt>sys/select.hE<gt>\n"
+"\\&\n"
+"int\n"
+"main(void)\n"
+"{\n"
+" int retval;\n"
+" fd_set rfds;\n"
+" struct timeval tv;\n"
+"\\&\n"
+" /* Watch stdin (fd 0) to see when it has input. */\n"
+"\\&\n"
+" FD_ZERO(&rfds);\n"
+" FD_SET(0, &rfds);\n"
+"\\&\n"
+" /* Wait up to five seconds. */\n"
+"\\&\n"
+" tv.tv_sec = 5;\n"
+" tv.tv_usec = 0;\n"
+"\\&\n"
+" retval = select(1, &rfds, NULL, NULL, &tv);\n"
+" /* Don\\[aq]t rely on the value of tv now! */\n"
+"\\&\n"
+" if (retval == -1)\n"
+" perror(\"select()\");\n"
+" else if (retval)\n"
+" printf(\"Data is available now.\\en\");\n"
+" /* FD_ISSET(0, &rfds) will be true. */\n"
+" else\n"
+" printf(\"No data within five seconds.\\en\");\n"
+"\\&\n"
+" exit(EXIT_SUCCESS);\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<accept>(2), B<connect>(2), B<poll>(2), B<read>(2), B<recv>(2), "
+"B<restart_syscall>(2), B<send>(2), B<sigprocmask>(2), B<write>(2), "
+"B<timespec>(3), B<epoll>(7), B<time>(7)"
+msgstr ""
+"B<accept>(2), B<connect>(2), B<poll>(2), B<read>(2), B<recv>(2), "
+"B<restart_syscall>(2), B<send>(2), B<sigprocmask>(2), B<write>(2), "
+"B<timespec>(3), B<epoll>(7), B<time>(7)"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid "For a tutorial with discussion and examples, see B<select_tut>(2)."
+msgstr "Обсуждение и примеры смотрите в B<select_tut>(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: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid "sigset_t origmask;\n"
+msgstr "sigset_t origmask;\n"
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid ""
+"pthread_sigmask(SIG_SETMASK, &sigmask, &origmask);\n"
+"ready = select(nfds, &readfds, &writefds, &exceptfds, timeout);\n"
+"pthread_sigmask(SIG_SETMASK, &origmask, NULL);\n"
+msgstr ""
+"pthread_sigmask(SIG_SETMASK, &sigmask, &origmask);\n"
+"ready = select(nfds, &readfds, &writefds, &exceptfds, timeout);\n"
+"pthread_sigmask(SIG_SETMASK, &origmask, NULL);\n"
+
+#. type: Plain text
+#: debian-bookworm
+#, fuzzy
+#| msgid ""
+#| "B<pselect>() was added to Linux in kernel 2.6.16. Prior to this, "
+#| "B<pselect>() was emulated in glibc (but see BUGS)."
+msgid ""
+"B<pselect>() was added in Linux 2.6.16. Prior to this, B<pselect>() was "
+"emulated in glibc (but see BUGS)."
+msgstr ""
+"Вызов B<pselect>() был добавлен в ядро Linux версии 2.6.16. До этого "
+"B<pselect>() эмулировался в glibc (но, см. ДЕФЕКТЫ)."
+
+#. type: Plain text
+#: debian-bookworm
+#, fuzzy
+#| msgid ""
+#| "B<select>() conforms to POSIX.1-2001, POSIX.1-2008, and 4.4BSD "
+#| "(B<select>() first appeared in 4.2BSD). Generally portable to/from non-"
+#| "BSD systems supporting clones of the BSD socket layer (including System\\ "
+#| "V variants). However, note that the System\\ V variant typically sets "
+#| "the timeout variable before exit, but the BSD variant does not."
+msgid ""
+"B<select>() conforms to POSIX.1-2001, POSIX.1-2008, and 4.4BSD "
+"(B<select>() first appeared in 4.2BSD). Generally portable to/from non-BSD "
+"systems supporting clones of the BSD socket layer (including System\\ V "
+"variants). However, note that the System\\ V variant typically sets the "
+"timeout variable before returning, but the BSD variant does not."
+msgstr ""
+"Вызов B<select>() соответствует POSIX.1-2001, POSIX.1-2008 и 4.4BSD (впервые "
+"B<select>() появился в 4.2BSD). Обычно перенос выполняется с не-BSD систем "
+"и на них, если они поддерживают уровень BSD-сокетов (включая варианты System "
+"V). Однако, заметим, что вариант System V, обычно, устанавливает значение "
+"переменной timeout перед выходом, а вариант BSD - нет."
+
+#. type: Plain text
+#: debian-bookworm
+msgid ""
+"B<pselect>() is defined in POSIX.1g, and in POSIX.1-2001 and POSIX.1-2008."
+msgstr ""
+"Вызов B<pselect>() определён в стандартах POSIX.1g, в POSIX 1004.1-2001 и "
+"POSIX.1-2008."
+
+#. type: Plain text
+#: debian-bookworm
+#, fuzzy
+#| msgid "B<strerror_l>() is specified in POSIX.1-2008."
+msgid "B<fd_set> is defined in POSIX.1-2001 and later."
+msgstr "Функция B<strerror_l>() описана в POSIX.1-2008."
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid ""
+"#include E<lt>stdio.hE<gt>\n"
+"#include E<lt>stdlib.hE<gt>\n"
+"#include E<lt>sys/select.hE<gt>\n"
+msgstr ""
+"#include E<lt>stdio.hE<gt>\n"
+"#include E<lt>stdlib.hE<gt>\n"
+"#include E<lt>sys/select.hE<gt>\n"
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid ""
+"int\n"
+"main(void)\n"
+"{\n"
+" int retval;\n"
+" fd_set rfds;\n"
+" struct timeval tv;\n"
+msgstr ""
+"int\n"
+"main(void)\n"
+"{\n"
+" int retval;\n"
+" fd_set rfds;\n"
+" struct timeval tv;\n"
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid " /* Watch stdin (fd 0) to see when it has input. */\n"
+msgstr ""
+" /* Следить, когда в stdin (fd 0) что-нибудь появится. */\n"
+"\n"
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid ""
+" FD_ZERO(&rfds);\n"
+" FD_SET(0, &rfds);\n"
+msgstr ""
+" FD_ZERO(&rfds);\n"
+" FD_SET(0, &rfds);\n"
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid " /* Wait up to five seconds. */\n"
+msgstr " /* Ждать не больше пяти секунд. */\n"
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid ""
+" tv.tv_sec = 5;\n"
+" tv.tv_usec = 0;\n"
+msgstr ""
+" tv.tv_sec = 5;\n"
+" tv.tv_usec = 0;\n"
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, fuzzy, no-wrap
+#| msgid ""
+#| " retval = select(1, &rfds, NULL, NULL, &tv);\n"
+#| " /* Don\\(aqt rely on the value of tv now! */\n"
+msgid ""
+" retval = select(1, &rfds, NULL, NULL, &tv);\n"
+" /* Don\\[aq]t rely on the value of tv now! */\n"
+msgstr ""
+" retval = select(1, &rfds, NULL, NULL, &tv);\n"
+" /* Больше не полагаться на значение tv! */\n"
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid ""
+" if (retval == -1)\n"
+" perror(\"select()\");\n"
+" else if (retval)\n"
+" printf(\"Data is available now.\\en\");\n"
+" /* FD_ISSET(0, &rfds) will be true. */\n"
+" else\n"
+" printf(\"No data within five seconds.\\en\");\n"
+msgstr ""
+" if (retval == -1)\n"
+" perror(\"select()\");\n"
+" else if (retval)\n"
+" printf(\"Есть данные.\\en\");\n"
+" /* FD_ISSET(0, &rfds) will be true. */\n"
+" else\n"
+" printf(\"Данные не появились в течение пяти секунд.\\en\");\n"
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid ""
+" exit(EXIT_SUCCESS);\n"
+"}\n"
+msgstr ""
+" exit(EXIT_SUCCESS);\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"