diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-15 19:43:11 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-15 19:43:11 +0000 |
commit | fc22b3d6507c6745911b9dfcc68f1e665ae13dbc (patch) | |
tree | ce1e3bce06471410239a6f41282e328770aa404a /po/ru/man2/select.2.po | |
parent | Initial commit. (diff) | |
download | manpages-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.po | 1797 |
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" |