# Russian translation of manpages # This file is distributed under the same license as the manpages-l10n package. # Copyright © of this file: # Alexander Golubev , 2018. # Azamat Hackimov , 2011, 2014-2016. # Hotellook, 2014. # Nikita , 2014. # Spiros Georgaras , 2016. # Vladislav , 2015. # Yuri Kozlov , 2011-2019. # Иван Павлов , 2017. msgid "" msgstr "" "Project-Id-Version: manpages-l10n\n" "POT-Creation-Date: 2024-06-01 06:20+0200\n" "PO-Revision-Date: 2019-10-15 18:55+0300\n" "Last-Translator: Yuri Kozlov \n" "Language-Team: Russian \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 debian-unstable opensuse-tumbleweed #, no-wrap msgid "2024-05-02" msgstr "2 мая 2024 г." #. type: TH #: archlinux debian-unstable #, fuzzy, no-wrap #| msgid "Linux man-pages 6.7" msgid "Linux man-pages 6.8" msgstr "Linux man-pages 6.7" #. 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, 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 Esys/select.hE>\n" msgstr "B<#include Esys/select.hE>\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 /* ... */ B\n" msgstr "B /* ... */ 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 "" #| "BIB<, fd_set *restrict >IB<,>\n" #| "B< fd_set *restrict >IB<, fd_set *restrict >IB<,>\n" #| "B< struct timeval *restrict >IB<);>\n" msgid "" "BIB<, fd_set *_Nullable restrict >IB<,>\n" "B< fd_set *_Nullable restrict >IB<,>\n" "B< fd_set *_Nullable restrict >IB<,>\n" "B< struct timeval *_Nullable restrict >IB<);>\n" msgstr "" "BIB<, fd_set *restrict >IB<,>\n" "B< fd_set *restrict >IB<, fd_set *restrict >IB<,>\n" "B< struct timeval *restrict >IB<);>\n" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "" "BIB<, fd_set *>IB<);>\n" "BIB<, fd_set *>IB<);>\n" "BIB<, fd_set *>IB<);>\n" "BIB<);>\n" msgstr "" "BIB<, fd_set *>IB<);>\n" "BIB<, fd_set *>IB<);>\n" "BIB<, fd_set *>IB<);>\n" "BIB<);>\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 "" #| "BIB<, fd_set *restrict >IB<,>\n" #| "B< fd_set *restrict >IB<, fd_set *restrict >IB<,>\n" #| "B< const struct timespec *restrict >IB<,>\n" #| "B< const sigset_t *restrict >IB<);>\n" msgid "" "BIB<, fd_set *_Nullable restrict >IB<,>\n" "B< fd_set *_Nullable restrict >IB<,>\n" "B< fd_set *_Nullable restrict >IB<,>\n" "B< const struct timespec *_Nullable restrict >IB<,>\n" "B< const sigset_t *_Nullable restrict >IB<);>\n" msgstr "" "BIB<, fd_set *restrict >IB<,>\n" "B< fd_set *restrict >IB<, fd_set *restrict >IB<,>\n" "B< const struct timespec *restrict >IB<,>\n" "B< const sigset_t *restrict >IB<);>\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(7)):" msgstr "" "Требования макроса тестирования свойств для glibc (см. " "B(7)):" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "B():" msgstr "B():" #. 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= 200112L\n" msgstr " _POSIX_C_SOURCE E= 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: B() and B() 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(2), or a sufficiently small " #| "B(2)) without blocking." msgid "" "B() и B() позволяют программам отслеживать изменения " "нескольких файловых дескрипторов ожидая, когда один или более файловых " "дескрипторов станут «готовы» для операции ввода-вывода определённого типа " "(например, ввода). Файловый дескриптор считается готовым, если к нему " "возможно применить соответствующую операцию ввода-вывода (например, " "B(2) или очень маленький B(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 structure is " "the value of the macro B." 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() within a loop, the sets must be reinitialized before each " #| "call.)" msgid "" "B: Upon return, each of the file descriptor sets is modified in " "place to indicate which file descriptors are currently \"ready\". Thus, if " "using B() в цикле, то наборы должны переинициализироваться " "перед каждым вызовом)." #. 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()" msgstr "B()" #. 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. 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()" msgstr "B()" #. 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 to I. 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()" msgstr "B()" #. 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 from I. 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()" msgstr "B()" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "B(), the B() macro can be " "used to test if a file descriptor is still present in a set. B() " "returns nonzero if the file descriptor I is present in I, 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() has returned, I will " #| "be cleared of all file descriptors except for those that are immediately " #| "available for reading." msgid "" "After B() в I " "остаются только те дескрипторы файлов, из которых возможно немедленное " "чтение." #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "I" msgstr "I" #. 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() has returned, I will be cleared of all file " "descriptors except for those that are ready for writing." msgstr "" "Этот набор служит для слежения за появлением места для записи данных в любой " "из файловых дескрипторов набора. После возврата из B() has returned, I 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" msgstr "I" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, fuzzy #| msgid "" #| "I 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 должно быть на единицу больше самого большого номера " "файлового дескриптора из всех трёх наборов плюс 1. Указанные файловые " "дескрипторы в каждом наборе проверяются до этого порога (но смотрите " "ДЕФЕКТЫ)." #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "I" msgstr "I" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, fuzzy #| msgid "" #| "The I argument specifies the interval that B() should block waiting for a file " "descriptor to become ready. The call will block until either:" msgstr "" "В аргументе I указывается интервал, на который должен " "заблокироваться B() returns immediately. (This is " #| "useful for polling.) If I is NULL (no timeout), B() " "завершится немедленно (полезно при опросе (polling)). Если значение " "I равно NULL (время ожидания не задано), то B() " "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 argument specifies the interval that B() blocks indefinitely waiting " "for a file descriptor to become ready." msgstr "" "В аргументе I указывается интервал, на который должен " "заблокироваться B() and B() is identical, other than " "these three differences:" msgstr "" "Работа B() uses a timeout that is a I (with seconds and " "microseconds), while B() uses a I (with seconds " "and nanoseconds)." msgstr "" "В вызове B() may update the I argument to indicate how much time " "was left. B() does not change this argument." msgstr "" "Вызов B() has no I argument, and behaves as B() called " "with NULL I." msgstr "" "Вызов B() could hang indefinitely if the signal arrived just " "after the test but just before the call. By contrast, B() allows " "one to first block signals, handle the signals that have come in, then call " "B() with the desired I, avoiding the race.)" msgstr "" "Причина необходимости B() в том, что если нужно ждать какого-то " "сигнала или готовности файлового дескриптора, то необходимо атомарное " "тестирование для избежания состязательности. (Предположим, что обработчик " "сигнала устанавливает глобальный флаг и завершается. В этом случае тест " "этого глобального флага после вызова B() 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() is a B(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) #-#-#-#-# #. .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-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) #-#-#-#-# #. .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 #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "On Linux, B()s in a loop without " "reinitializing it. Consider I to be undefined after B() изменяет I для отражения времени, " "проведённого не в режиме ожидания; большая часть других реализаций этого не " "делает (согласно POSIX.1 допускается любой из этих вариантов). Это вызывает " "проблемы как при переносе кода Linux, читающего I, на другие " "операционные системы, так и при переносе на Linux кода, использующего " "I для многократного вызова B()." #. 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() and B() 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, I, " "I). The return value may be zero if the timeout expired before " "any file descriptors became ready." msgstr "" "При успешном выполнении B() can fail with the error B " "if the system fails to allocate kernel-internal resources, rather than " "B as Linux does. POSIX specifies this error for B(2), but not " "for B() может завершаться с ошибкой " "B, если системе не удаётся выделить внутренние ресурсы ядра, вместо " "ошибки B, как это происходит в Linux. В POSIX эта ошибка указана для " "B(2), но не для B(2)" msgid "B(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() 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() появился в 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():" msgid "B()" msgstr "B():" #. 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() was added to Linux in kernel 2.6.16. Prior to this, " #| "B() was emulated in glibc (but see BUGS)." msgid "Prior to this, it was emulated in glibc (but see BUGS)." msgstr "" "Вызов B() был добавлен в ядро Linux версии 2.6.16. До этого " "B() эмулировался в 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" 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 type: Isys/time." "hE>." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "An I is a fixed size buffer. Executing B() or B() " "with a value of I that is negative or is equal to or larger than " "B will result in undefined behavior. Moreover, POSIX requires " "I to be a valid file descriptor." msgstr "" "I представляет собой буфер фиксированного размера. Выполнение " "B() или B() с отрицательным значением I, равным или " "большим чем B, приводит к неопределённому поведению. Более того, " "согласно POSIX I должен быть корректным файловым дескриптором." #. 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() и B() флаг B не влияет." #. 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(), 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() в основной программе (чтобы избежать возможной блокировки при " "записи в канал, который может быть заполнен, или при чтении из канала, " "который может быть пуст, нужно использовать неблокирующий ввод/вывод)." #. 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() " "with all three sets empty, I zero, and a non-NULL I as a " "fairly portable way to sleep with subsecond precision." msgstr "" "Иногда B() and the event notifications provided by " "B(2) and B(7):" msgstr "" "Внутри исходного кода ядра Linux имеются определения, которые показывают " "соотношение между уведомлениями чтения, записи и исключительного условия " "B() is closed in another " "thread, the result is unspecified. On some UNIX systems, B() 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(), закрывается в другой " "нити, то результат непредсказуем. В некоторых системах UNIX B() и выполнением операции ввода-вывода). В Linux (и " "некоторых других системах), закрытие файлового дескриптора в другой нити не " "влияет на B(). This " #| "design error is avoided by B(2), which uses separate structure " #| "fields for the input and output of the call." msgid "" "The implementation of the I arguments as value-result arguments is a " "design error that is avoided in B(2) and B(7)." msgstr "" "Реализация аргументов I в виде аргументов значение-результат " "означает, что они должен инициализироваться перед каждым вызовом " "B() should check all specified file descriptors " "in the three file descriptor sets, up to the limit I. 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." msgstr "" "Согласно POSIX, B(). This " #| "implementation remained vulnerable to the very race condition that " #| "B() was designed to prevent. Modern versions of glibc use the " #| "(race-free) B() system call on kernels where it is provided." msgid "" "Starting with glibc 2.1, glibc provided an emulation of B() that " "was implemented using B(2) and B(). Эта реализация " "остаётся уязвимой к той самой состязательности, для устранения которой и был " "разработан B(). В современных версии glibc используется " "(бессостязательный) системный вызов B(), если он предоставляется " "ядром." #. 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() 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 on sockets that should not block." msgstr "" "В Linux, вызов B() also modifies I if the call is interrupted " "by a signal handler (i.e., the B error return). This is not " "permitted by POSIX.1. The Linux B() system call has the same " "behavior, but the glibc wrapper hides this behavior by internally copying " "the I to a local variable and passing that variable to the system " "call." msgstr "" "В Linux, вызов B() conforms to POSIX.1-2001, POSIX.1-2008, and 4.4BSD " #| "(B() conforms to POSIX.1-2001, POSIX.1-2008, and 4.4BSD " "(B() соответствует POSIX.1-2001, POSIX.1-2008 и 4.4BSD (впервые " "B