# Russian translation of manpages # This file is distributed under the same license as the manpages-l10n package. # Copyright © of this file: # Alexey, 2016. # Azamat Hackimov , 2014-2017. # kogamatranslator49 , 2015. # Kogan, Darima , 2014. # Max Is , 2016. # Yuri Kozlov , 2011-2019. # Иван Павлов , 2017. msgid "" msgstr "" "Project-Id-Version: manpages-l10n\n" "POT-Creation-Date: 2024-03-01 17:04+0100\n" "PO-Revision-Date: 2019-10-12 08:58+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 "posix_spawn" msgstr "" #. 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 "posix_spawn, posix_spawnp - spawn a process" msgstr "posix_spawn, posix_spawnp - порождает процесс" #. 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 Espawn.hE>\n" msgstr "B<#include Espawn.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 "" "BIB<, const char *restrict >IB<,>\n" "B< const posix_spawn_file_actions_t *restrict >IB<,>\n" "B< const posix_spawnattr_t *restrict >IB<,>\n" "B< char *const >IB<[restrict],>\n" "B< char *const >IB<[restrict]);>\n" "BIB<, const char *restrict >IB<,>\n" "B< const posix_spawn_file_actions_t *restrict >IB<,>\n" "B< const posix_spawnattr_t *restrict >IB<,>\n" "B< char *const >IB<[restrict],>\n" "B< char *const >IB<[restrict]);>\n" msgstr "" #. type: SH #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "DESCRIPTION" msgstr "ОПИСАНИЕ" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "The B() and B() functions are used to create a " "new child process that executes a specified file. These functions were " "specified by POSIX to provide a standardized method of creating new " "processes on machines that lack the capability to support the B(2) " "system call. These machines are generally small, embedded systems lacking " "MMU support." msgstr "" "Функции B() и B() используются для создания новых " "дочерних процессов, которые выполняют указываемый файл. Эти функции были " "определены в POSIX для стандартизации метода создания новых процессов на " "машинах, у которых нет возможности поддержки системного вызова B(2). К " "таким машинах, обычно, относятся встраиваемые системы без поддержки MMU." #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "The B() and B() functions provide the " "functionality of a combined B(2) and B(3), with some optional " "housekeeping steps in the child process before the B(3). These " "functions are not meant to replace the B(2) and B(2) system " "calls. In fact, they provide only a subset of the functionality that can be " "achieved by using the system calls." msgstr "" "Функции B() и B() предоставляют комбинацию " "возможностей B(2) и B(3) с некоторыми необязательными " "обслуживающими действиями в дочернем процессе перед B(3). Эти функции " "не служат заменой системных вызовов B(2) и B(2). Фактически, " "они предоставляют только часть функций системных вызовов." #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "The only difference between B() and B() is the " "manner in which they specify the file to be executed by the child process. " "With B(), the executable file is specified as a pathname (which " "can be absolute or relative). With B(), the executable file " "is specified as a simple filename; the system searches for this file in the " "list of directories specified by B (in the same way as for " "B(3)). For the remainder of this page, the discussion is phrased in " "terms of B(), with the understanding that B() " "differs only on the point just described." msgstr "" "Единственным отличием между B() и B() является " "способ, которым в них указывается исполняемый дочерним процессом файл. В " "B() исполняемый файл задаётся в виде пути (которое может быть " "абсолютным или относительным). В B() исполняемый файл задаётся " "в виде имени файла; система ищет этот файл в списке каталогов, указанных в " "B (также, как это делает B(3)). Кроме данного отличия далее на " "этой странице всё описание B() также относится и к " "B()." #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "The remaining arguments to these two functions are as follows:" msgstr "Остальные аргументы функций:" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, fuzzy, no-wrap #| msgid "I" 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 points to a buffer that is used to return the process " #| "ID of the new child process." msgid "" "points to a buffer that is used to return the process ID of the new child " "process." msgstr "" "Аргумент I указывает на буфер, в котором возвращается ID нового " "дочернего процесса." #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, fuzzy, no-wrap #| msgid "B(2)" msgid "I" msgstr "B(2)" #. 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 points to a I " #| "that specifies file-related actions to be performed in the child between " #| "the B(2) and B(3) steps. This object is initialized and " #| "populated before the B() call using " #| "B(3) and the " #| "B() functions." msgid "" "points to a I that specifies file-related actions " "to be performed in the child between the B(2) and B(3) steps. " "This object is initialized and populated before the B() call " "using B(3) and the " "B() functions." msgstr "" "Аргумент I указывает на I<объект файловых действий при " "создании>, в котором задаются действия с файлом, выполняемые в потомке между " "шагами B(2) и B(3). Данный объект инициализируется и заполняется " "перед вызовом B() с помощью функций " "B(3) и B()." #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "I" 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 points to an I that specifies " #| "various attributes of the created child process. This object is " #| "initialized and populated before the B() call using " #| "B(3) and the B() functions." msgid "" "points to an I that specifies various attributes of the " "created child process. This object is initialized and populated before the " "B() call using B(3) and the " "B() functions." msgstr "" "Аргумент I указывает на I<объект атрибутов>, в котором задаются " "различные атрибуты создаваемого дочернего процесса. Данный объект " "инициализируется и заполняется перед вызовом B() с помощью " "функций B(3) и B()." #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "I" msgstr "" #. type: TQ #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, fuzzy, no-wrap #| msgid "I" 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 and I arguments specify the argument list and " #| "environment for the program that is executed in the child process, as for " #| "B(2)." msgid "" "specify the argument list and environment for the program that is executed " "in the child process, as for B(2)." msgstr "" "В аргументах I и I задаётся список аргументов и окружения для " "программы, выполняемой в дочернем процессе, как для B(2)." #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "Below, the functions are described in terms of a three-step process: the " "B() step, the pre-B() step (executed in the child), and the " "B() step (executed in the child)." msgstr "" "Далее функции описаны в виде трёх ступенчатого процесса: шаг 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 "fork() step" msgstr "Шаг fork()" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, fuzzy #| msgid "" #| "The B() function commences by calling B(2), or " #| "possibly B(2) (see below)." msgid "" "Since glibc 2.24, the B() function commences by calling " "B(2) with B and B flags. Older " "implementations use B(2), or possibly B(2) (see below)." msgstr "" "Функция B() начинает работу с вызова B(2) или, возможно, " "B(2) (смотрите ниже)." #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "The PID of the new child process is placed in I<*pid>. The " "B() function then returns control to the parent process." msgstr "" "PID нового дочернего процесса помещается в I<*pid>. После этого функция " "B() возвращает управление родительскому процессу." #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "Subsequently, the parent can use one of the system calls described in " "B(2) to check the status of the child process. If the child fails in " "any of the housekeeping steps described below, or fails to execute the " "desired file, it exits with a status of 127." msgstr "" "Соответственно, родитель может использовать один из системных вызовов, " "описанных в B(2), для проверки состояния дочернего процесса. Если " "потомок завершится с ошибкой в любом из служебных шагов, описанных далее, " "или возникнет ошибка при выполнении желаемого файла, то он завершит работу с " "кодом состояния 127." #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, fuzzy #| msgid "" #| "The child process is created using B(2) instead of B(2) " #| "when either of the following is true:" msgid "" "Before glibc 2.24, the child process is created using B(2) instead " "of B(2) when either of the following is true:" msgstr "" "Дочерний процесс создаётся с помощью B(2), а не B(2) в любом из " "следующих случаев:" #. 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 "" "the I element of the attributes object pointed to by I " "contains the GNU-specific flag B; or" msgstr "" "элемент I объекта атрибутов, на который указывает I, " "содержит определённый в GNU флаг B; или" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "I is NULL and the I element of the attributes " "object pointed to by I does I contain B, " "B, B, " "B, B, or " "B." msgstr "" "I равно NULL и элемент I объекта атрибутов, на " "который указывает I, I<не> содержит B, " "B, B, " "B, B или " "B." #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "In other words, B(2) is used if the caller requests it, or if there " "is no cleanup expected in the child before it B(3)s the requested file." msgstr "" "Иначе говоря, B(2) используется, если это запросил вызывающий или не " "нужна очистка в потомке перед выполнением B(3) запрашиваемого файла." #. type: SS #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "pre-exec() step: housekeeping" msgstr "Шаг перед exec(): служебные действия" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, fuzzy #| msgid "" #| "In between the B(2) and the B(3), a child process may need " #| "to perform a set of housekeeping actions. The B() and " #| "B() functions support a small, well-defined set of system " #| "tasks that the child process can accomplish before it executes the " #| "executable file. These operations are controlled by the attributes " #| "object pointed to by I and the file actions object pointed to by " #| "I. In the child, processing is done in the following " #| "sequence:" msgid "" "In between the B and the B steps, a child process may need " "to perform a set of housekeeping actions. The B() and " "B() functions support a small, well-defined set of system " "tasks that the child process can accomplish before it executes the " "executable file. These operations are controlled by the attributes object " "pointed to by I and the file actions object pointed to by " "I. In the child, processing is done in the following sequence:" msgstr "" "Между B(2) и B(3) дочерний процесс может выполнить набор " "служебных действий. Функции B() и B() " "поддерживают маленький, хорошо спроектированный набор системных задач, " "которые дочерний процесс может выполнить перед запуском исполняемого файла. " "Эти операции управляются объектом атрибутов, на который указывает I и " "объект файловых действий, на который указывает I. В потомке " "обработка выполняются в следующей последовательности:" #. type: IP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "(1)" msgstr "(1)" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "Process attribute actions: signal mask, signal default handlers, scheduling " "algorithm and parameters, process group, and effective user and group IDs " "are changed as specified by the attributes object pointed to by I." msgstr "" "Действия с атрибутами процесса: маска сигналов, обработчики сигналов по " "умолчанию, алгоритм планирования и параметры, ID группы процесса, " "эффективного пользователя и группы изменяются согласно объекту атрибутов, на " "который указывает I." #. type: IP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "(2)" msgstr "(2)" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "File actions, as specified in the I argument, are performed in " "the order that they were specified using calls to the " "B() functions." msgstr "" "Файловые действия, указываемые в аргументе I, выполняются в " "порядке их определения вызовами функций B()." #. type: IP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "(3)" msgstr "(3)" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "File descriptors with the B flag set are closed." msgstr "Закрываются файловые дескрипторы, имеющие флаг B." #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "All process attributes in the child, other than those affected by attributes " "specified in the object pointed to by I and the file actions in the " "object pointed to by I, will be affected as though the child " "was created with B(2) and it executed the program with B(2)." msgstr "" "Все атрибуты процесса-потомка, отличные от атрибутов в объекте, на который " "указывает I и файловые действия в объекте, на который указывает " "I, будут изменены как если бы потомок создавался с помощью " "B(2) и выполнял программу с помощью B(2)." #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "The process attributes actions are defined by the attributes object pointed " "to by I. The I attribute (set using " "B(3)) controls the general actions that occur, " "and other attributes in the object specify values to be used during those " "actions." msgstr "" "Действия атрибутов процесса определяются атрибутами объекта, на который " "указывает I. Атрибут I (устанавливается с помощью " "B(3)) управляет общими действиями, а остальные " "атрибуты объекта хранят значения, которые будут использованы в этих " "действиях." #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "The effects of the flags that may be specified in I are as " "follows:" msgstr "Влияние флагов, которые могут быть указаны в I:" #. 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" #. FIXME . #. (see #. .BR posix_spawnattr_setsigmask (3)) #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "Set the signal mask to the signal set specified in the I " "attribute of the object pointed to by I. If the " "B flag is not set, then the child inherits the " "parent's signal mask." msgstr "" "Назначить маску сигналов равной набору сигналов, определённой в атрибуте " "I объекта, на который указывает I. Если не установлен " "флаг B, то потомок наследует маску сигналов родителя." #. 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" #. FIXME . #. (see #. .BR posix_spawnattr_setsigdefault (3)) #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "Reset the disposition of all signals in the set specified in the I attribute of the object pointed to by I to the default. " "For the treatment of the dispositions of signals not specified in the " "I attribute, or the treatment when " "B is not specified, see B(2)." msgstr "" "Сбрасывает обработчики всех сигналов в наборе, заданном в атрибуте I объекта, на который указывает I, в значения по умолчанию. " "О том, что происходит с обработчиками сигналов не указанных в атрибуте " "I или когда не указан B, смотрите " "B(2)." #. 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" #. (POSIX_PRIORITY_SCHEDULING only) #. FIXME . #. (see #. .BR posix_spawnattr_setschedparam (3)) #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "If this flag is set, and the B flag is not set, " "then set the scheduling parameters to the parameters specified in the " "I attribute of the object pointed to by I." msgstr "" "Если этот флаг установлен, а B нет, то изменяет " "параметры планирования на значения, указанные в атрибуте I " "объекта, на который указывает I." #. 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 "" "Set the scheduling policy algorithm and parameters of the child, as follows:" msgstr "Назначает алгоритм планирования и параметры потомка:" #. FIXME . #. (see #. .BR posix_spawnattr_setpolicy (3)) #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "The scheduling policy is set to the value specified in the I attribute of the object pointed to by I." msgstr "" "Алгоритму планирования присваивается значение, указанное в атрибуте I объекта, на который указывает I." #. FIXME . #. (see #. .BR posix_spawnattr_setschedparam (3)) #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "The scheduling parameters are set to the value specified in the I attribute of the object pointed to by I (but see BUGS)." msgstr "" "Параметрам планирования присваивается значение, указанное в атрибуте I объекта, на который указывает I (но смотрите ДЕФЕКТЫ)." #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "If the B and B flags " "are not specified, the child inherits the corresponding scheduling " "attributes from the parent." msgstr "" "Если не указаны флаги B и " "B, то потомок наследует соответствующие атрибуты " "планирования от родителя." #. 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 "" "If this flag is set, reset the effective UID and GID to the real UID and GID " "of the parent process. If this flag is not set, then the child retains the " "effective UID and GID of the parent. In either case, if the set-user-ID and " "set-group-ID permission bits are enabled on the executable file, their " "effect will override the setting of the effective UID and GID (se " "B(2))." msgstr "" "Если этот флаг установлен, то сбрасываются эффективный UID и GID в реальный " "UID и GID родительского процесса. Если флаг не установлен, то потомок " "сохраняет эффективный UID и GID родителя. В любом случае, если биты прав set-" "user-ID и set-group-ID включены на исполняемом файле, то это заменяет " "значения эффективного UID и GID (смотрите B(2))." #. 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" #. FIXME . #. (see #. .BR posix_spawnattr_setpgroup (3)) #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "Set the process group to the value specified in the I " "attribute of the object pointed to by I. If the I " "attribute has the value 0, the child's process group ID is made the same as " "its process ID. If the B flag is not set, the child " "inherits the parent's process group ID." msgstr "" "Назначает группе процесса значение, указанное в атрибуте I " "объекта, на который указывает I. Если атрибут I равен " "0, то ID группы потомка становится равным его ID процесса. Если флаг " "B не установлен, то потомок наследует ID группы " "процесса родителя." #. type: TP #: archlinux debian-bookworm 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-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "Since glibc 2.24, this flag has no effect. On older implementations, " "setting this flag forces the B step to use B(2) instead of " "B(2). The B<_GNU_SOURCE> feature test macro must be defined to obtain " "the definition of this constant." msgstr "" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, fuzzy, no-wrap #| msgid "B" msgid "B (since glibc 2.26)" msgstr "B" #. This flag has been accepted in POSIX, see: #. http://austingroupbugs.net/view.php?id=1044 #. and has been implemented since glibc 2.26 #. commit daeb1fa2e1b33323e719015f5f546988bd4cc73b #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "If this flag is set, the child process shall create a new session and become " "the session leader. The child process shall also become the process group " "leader of the new process group in the session (see B(2)). The " "B<_GNU_SOURCE> feature test macro must be defined to obtain the definition " "of this constant." msgstr "" #. mtk: I think we probably don't want to say the following, since it #. could lead people to do the wrong thing #. The POSIX standard tells you to call #. this function to de-initialize the attributes object pointed to by #. .I attrp #. when you are done with it; #. however, on Linux systems this operation is a no-op. #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "If I is NULL, then the default behaviors described above for each " "flag apply." msgstr "" "Если I равно NULL, то выполняются действия по умолчанию, которые " "описаны выше по каждому флагу." #. 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 a sequence of file operations that " #| "are performed in the child process after the general processing described " #| "above, and before it performs the B(3). If I is " #| "NULL, then no special action is taken, and standard B(3) semantics " #| "apply--file descriptors open before the exec remain open in the new " #| "process, except those for which the B flag has been set. " #| "File locks remain in place." msgid "" "The I argument specifies a sequence of file operations that " "are performed in the child process after the general processing described " "above, and before it performs the B(3). If I is NULL, " "then no special action is taken, and standard B(3) semantics " "apply\\[em]file descriptors open before the exec remain open in the new " "process, except those for which the B flag has been set. File " "locks remain in place." msgstr "" "Аргумент I задаёт последовательность файловых операций, " "которые выполняются в дочернем процессе после общей обработки, описанной " "выше, и перед выполнением B(3). Если I равно NULL, то " "никаких специальных действий не производится и выполняются стандартные " "действия B(3) — файловые дескрипторы, открытые до выполнения exec, " "остаются открытыми и в новом процессе, за исключением тех, у которых " "установлен флаг B. Файловые блокировки остаются как были." #. FIXME . I think the following is best placed in the #. posix_spawn_file_actions_adddup2(3) page, and a similar statement is #. also needed in posix_spawn_file_actions_addclose(3) #. Note that you can specify file descriptors in #. .I posix_spawn_file_actions_adddup2 (3) #. which would not be usable if you called #. .BR dup2 (2) #. at that time--i.e., file descriptors that are opened or #. closed by the earlier operations #. added to #. .I file_actions . #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "If I is not NULL, then it contains an ordered set of requests " "to B(2), B(2), and B(2) files. These requests are added " "to the I by B(3), " "B(3), and " "B(3). The requested operations are " "performed in the order they were added to I." msgstr "" "Если I не равно NULL, то в нём содержится упорядоченный набор " "запросов B(2), B(2) и B(2) на файлы. Эти запросы " "добавляются в I с помощью " "B(3), " "B(3) и " "B(3). Запрашиваемые операции выполняются в " "порядке их добавления в I." #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "If any of the housekeeping actions fails (due to bogus values being passed " "or other reasons why signal handling, process scheduling, process group ID " "functions, and file descriptor operations might fail), the child process " "exits with exit value 127." msgstr "" "Если какая-либо обслуживающая операция завершается с ошибкой, (из-за " "переданных некорректных значений или по другим причинам, из-за которых " "обработка сигналов, планирование процесса, функции изменения ID группы " "процесса и операции с файловыми дескрипторами завершается с ошибкой), " "дочерний процесс завершается с кодом выхода 127." #. type: SS #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "exec() step" msgstr "Шаг exec()" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "Once the child has successfully forked and performed all requested pre-exec " "steps, the child runs the requested executable." msgstr "" "После того как потомок создан (fork) и выполнены все запрошенные шаги до " "exec, потомок выполняет запуск запрошенного исполняемого файла." #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "The child process takes its environment from the I argument, which is " "interpreted as if it had been passed to B(2). The arguments to the " "created process come from the I argument, which is processed as for " "B(2)." msgstr "" "Дочерний процесс берёт своё окружение из аргумента I, которое " "рассматривается также как если бы оно передавалось в B(2). Аргументы " "созданного процесса выбираются из аргумента I, который обрабатывается " "также как для B(2)." #. 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 "" #| "Upon successful completion, B() and B() " #| "place the PID of the child process in I, and return 0. If there is " #| "an error before or during the B(2), then no child is created, the " #| "contents of I<*pid> are unspecified, and these functions return an error " #| "number as described below." msgid "" "Upon successful completion, B() and B() place " "the PID of the child process in I, and return 0. If there is an error " "during the B step, then no child is created, the contents of I<*pid> " "are unspecified, and these functions return an error number as described " "below." msgstr "" "При успешном завершении B() и B() помещают PID " "дочернего процесса в I и возвращают 0. Если перед или во время " "B(2) возникла ошибка, то потомок не создаётся, содержимое I<*pid> " "неопределенно и функции возвращают номер ошибки (описано далее)." #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "Even when these functions return a success status, the child process may " "still fail for a plethora of reasons related to its pre-B() " "initialization. In addition, the B(3) may fail. In all of these " "cases, the child process will exit with the exit value of 127." msgstr "" "Даже когда эти функции выполняются без ошибок, дочерний процесс всё ещё " "может завершиться с ошибкой по многим причинам, касающимся инициализации до " "B(). Также, может завершиться ошибкой и B(3). Во всех этих " "случаях дочерний процесс завершается с кодом ошибки 127." #. 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: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, fuzzy #| msgid "" #| "The B() and B() functions fail only in the " #| "case where the underlying B(2) or B(2) call fails; in " #| "these cases, these functions return an error number, which will be one of " #| "the errors described for B(2) or B(2)." msgid "" "The B() and B() functions fail only in the case " "where the underlying B(2), B(2), or B(2) call fails; in " "these cases, these functions return an error number, which will be one of " "the errors described for B(2), B(2), or B(2)." msgstr "" "Функции B() и B() завершаются с ошибкой, только " "из-за ошибок в используемых вызовах B(2) и B(2); в этих случаях " "эти функции возвращают номер ошибки, который может быть одним из описанных в " "B(2) или B(2)." #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "In addition, these functions fail if:" 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 "Function not supported on this system." msgstr "Функции не поддерживаются в этой системе." #. type: SH #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "STANDARDS" msgstr "СТАНДАРТЫ" #. type: Plain text #: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron #: opensuse-leap-15-6 opensuse-tumbleweed 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 "ИСТОРИЯ" #. FIXME . This piece belongs in spawnattr_setflags(3) #. The #. .B POSIX_SPAWN_USEVFORK #. flag is a GNU extension; the #. .B _GNU_SOURCE #. feature test macro must be defined (before including any header files) #. to obtain the definition of this constant. #. type: Plain text #: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron #: opensuse-leap-15-6 opensuse-tumbleweed msgid "glibc 2.2. POSIX.1-2001." msgstr "glibc 2.2. 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 housekeeping activities in the child are controlled by the objects " "pointed to by I (for non-file actions) and I In POSIX " "parlance, the I and I data " "types are referred to as objects, and their elements are not specified by " "name. Portable programs should initialize these objects using only the " "POSIX-specified functions. (In other words, although these objects may be " "implemented as structures containing fields, portable programs must avoid " "dependence on such implementation details.)" msgstr "" "Обслуживающие действия в потомке управляются объектами, на который указывает " "I (для не файловых действий) и I. В описании POSIX типы " "данных I и I указываются как " "объекты, а их элементам не даны имена. Переносимые программы должны " "инициализировать эти объекты с только помощью функций, определённых в POSIX " "(другими словами, хотя эти объекты могут быть реализованы как структуры с " "полями, в переносимых программах нельзя привязываться к такой реализации)." #. Tested on glibc 2.12 #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, fuzzy #| msgid "" #| "According to POSIX, it unspecified whether fork handlers established with " #| "B(3) are called when B() is invoked. On " #| "glibc, fork handlers are called only if the child is created using " #| "B(2)." msgid "" "According to POSIX, it is unspecified whether fork handlers established with " "B(3) are called when B() is invoked. Since " "glibc 2.24, the fork handlers are not executed in any case. On older " "implementations, fork handlers are called only if the child is created using " "B(2)." msgstr "" "В POSIX не определено вызывать ли обработчики fork, установленные с помощью " "B(3), при вызове B(). В glibc обработчики fork " "вызываются только, если потомок создан с помощью B(2)." #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "There is no \"posix_fspawn\" function (i.e., a function that is to " "B() as B(3) is to B(2)). However, this " "functionality can be obtained by specifying the I argument as one of " "the files in the caller's I directory." msgstr "" "Не существует функции «posix_fspawn» (т. е., функции типа B(), " "которая вызывала бы B(3) вместо B(2)). Однако, подобное " "поведение можно получить указав аргумент I как один из файлов в " "каталоге I вызывающего." #. type: SH #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "BUGS" msgstr "ДЕФЕКТЫ" #. http://sourceware.org/bugzilla/show_bug.cgi?id=12052 #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "POSIX.1 says that when B is specified in I, then the B (if present) is ignored. " "However, before glibc 2.14, calls to B() failed with an error " "if B was specified without also specifying " "B." msgstr "" "В POSIX.1 указано, что когда в I определён " "B, флаг B (если есть) " "игнорируется. Однако до glibc 2.14 вызов B() завершался с " "ошибкой, если B был указан, а " "B отсутствовал." #. type: SH #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "EXAMPLES" msgstr "ПРИМЕРЫ" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "The program below demonstrates the use of various functions in the POSIX " "spawn API. The program accepts command-line attributes that can be used to " "create file actions and attributes objects. The remaining command-line " "arguments are used as the executable name and command-line arguments of the " "program that is executed in the child." msgstr "" "Представленная далее программа показывает использование различных функций " "программного интерфейса POSIX для создания процессов. Она принимает атрибуты " "из командной строки, которые позволяют задать файловые действия и атрибуты " "объектов при создании. В остальных аргументах командной строки задаются имя " "исполняемого файла и аргументы командной строки для программы, исполняемой в " "потомке." #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "In the first run, the B(1) command is executed in the child, and the " "B() call employs no file actions or attributes objects." msgstr "" "Здесь для исполнения в потомке указана команда B(1) и вызов " "B() не использует каких-либо файловых действий и атрибутов " "объекта." #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "" "$ B<./a.out date>\n" "PID of child: 7634\n" "Tue Feb 1 19:47:50 CEST 2011\n" "Child status: exited, status=0\n" msgstr "" "$ B<./a.out date>\n" "PID потомка: 7634\n" "Tue Feb 1 19:47:50 CEST 2011\n" "Состояние потомка: завершился, состояние=0\n" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "In the next run, the I<-c> command-line option is used to create a file " "actions object that closes standard output in the child. Consequently, " "B(1) fails when trying to perform output and exits with a status of 1." msgstr "" "Здесь параметром командной строки I<-c> передаётся объект файловых действий, " "которые закрывают стандартный вывод в потомке. В результате этого B(1) " "завершается с ошибкой, когда пытается выполнить вывод данных и завершается с " "кодом состояния 1." #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "" "$ B<./a.out -c date>\n" "PID of child: 7636\n" "date: write error: Bad file descriptor\n" "Child status: exited, status=1\n" msgstr "" "$ B<./a.out -c date>\n" "PID потомка: 7636\n" "date: write error: Bad file descriptor\n" "Состояние потомка: завершился, состояние=1\n" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "In the next run, the I<-s> command-line option is used to create an " "attributes object that specifies that all (blockable) signals in the child " "should be blocked. Consequently, trying to kill child with the default " "signal sent by B(1) (i.e., B) fails, because that signal is " "blocked. Therefore, to kill the child, B is necessary (B " "can't be blocked)." msgstr "" "Здесь используется параметр командной строки I<-s> для создания объекта " "атрибутов, который используется для блокировки всех сигналов (блокируемых) в " "потомке. В результате этого попытка убить потомка сигналом по умолчанию (т. " "е., B) с помощью B(1) завершается ошибкой, так как этот " "сигнал заблокирован. Теперь, чтобы убить потомка, требуется сигнал " "B (B невозможно заблокировать)." #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "" "$ B<./a.out -s sleep 60 &>\n" "[1] 7637\n" "$ PID of child: 7638\n" msgstr "" "$ B<./a.out -s sleep 60 &>\n" "[1] 7637\n" "$ PID потомка: 7638\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\n" "$ B\n" "$ Child status: killed by signal 9\n" "[1]+ Done ./a.out -s sleep 60\n" msgstr "" "$ B\n" "$ B\n" "$ Состояние потомка: убит по сигналу 9\n" "[1]+ Done ./a.out -s sleep 60\n" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "When we try to execute a nonexistent command in the child, the B(3) " "fails and the child exits with a status of 127." msgstr "" "Когда мы пытаемся выполнить в потомке несуществующую команду, B(3) " "завершается с ошибкой и потомок завершается с кодом 127." #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "" "$ B<./a.out xxxxx\n" "PID of child: 10190\n" "Child status: exited, status=127>\n" msgstr "" "$ B<./a.out xxxxx\n" "PID потомка: 10190\n" "Состояние потомка: завершился, состояние=127>\n" #. type: SS #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "Program source" msgstr "Исходный код программы" #. type: Plain text #: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron #: opensuse-tumbleweed #, no-wrap msgid "" "#include Eerrno.hE\n" "#include Espawn.hE\n" "#include Estdint.hE\n" "#include Estdio.hE\n" "#include Estdlib.hE\n" "#include Estring.hE\n" "#include Eunistd.hE\n" "#include Ewait.hE\n" "\\&\n" "#define errExit(msg) do { perror(msg); \\e\n" " exit(EXIT_FAILURE); } while (0)\n" "\\&\n" "#define errExitEN(en, msg) \\e\n" " do { errno = en; perror(msg); \\e\n" " exit(EXIT_FAILURE); } while (0)\n" "\\&\n" "char **environ;\n" "\\&\n" "int\n" "main(int argc, char *argv[])\n" "{\n" " pid_t child_pid;\n" " int s, opt, status;\n" " sigset_t mask;\n" " posix_spawnattr_t attr;\n" " posix_spawnattr_t *attrp;\n" " posix_spawn_file_actions_t file_actions;\n" " posix_spawn_file_actions_t *file_actionsp;\n" "\\&\n" " /* Parse command-line options, which can be used to specify an\n" " attributes object and file actions object for the child. */\n" "\\&\n" " attrp = NULL;\n" " file_actionsp = NULL;\n" "\\&\n" " while ((opt = getopt(argc, argv, \"sc\")) != -1) {\n" " switch (opt) {\n" " case \\[aq]c\\[aq]: /* -c: close standard output in child */\n" "\\&\n" " /* Create a file actions object and add a \"close\"\n" " action to it. */\n" "\\&\n" " s = posix_spawn_file_actions_init(&file_actions);\n" " if (s != 0)\n" " errExitEN(s, \"posix_spawn_file_actions_init\");\n" "\\&\n" " s = posix_spawn_file_actions_addclose(&file_actions,\n" " STDOUT_FILENO);\n" " if (s != 0)\n" " errExitEN(s, \"posix_spawn_file_actions_addclose\");\n" "\\&\n" " file_actionsp = &file_actions;\n" " break;\n" "\\&\n" " case \\[aq]s\\[aq]: /* -s: block all signals in child */\n" "\\&\n" " /* Create an attributes object and add a \"set signal mask\"\n" " action to it. */\n" "\\&\n" " s = posix_spawnattr_init(&attr);\n" " if (s != 0)\n" " errExitEN(s, \"posix_spawnattr_init\");\n" " s = posix_spawnattr_setflags(&attr, POSIX_SPAWN_SETSIGMASK);\n" " if (s != 0)\n" " errExitEN(s, \"posix_spawnattr_setflags\");\n" "\\&\n" " sigfillset(&mask);\n" " s = posix_spawnattr_setsigmask(&attr, &mask);\n" " if (s != 0)\n" " errExitEN(s, \"posix_spawnattr_setsigmask\");\n" "\\&\n" " attrp = &attr;\n" " break;\n" " }\n" " }\n" "\\&\n" " /* Spawn the child. The name of the program to execute and the\n" " command-line arguments are taken from the command-line arguments\n" " of this program. The environment of the program execed in the\n" " child is made the same as the parent\\[aq]s environment. */\n" "\\&\n" " s = posix_spawnp(&child_pid, argv[optind], file_actionsp, attrp,\n" " &argv[optind], environ);\n" " if (s != 0)\n" " errExitEN(s, \"posix_spawn\");\n" "\\&\n" " /* Destroy any objects that we created earlier. */\n" "\\&\n" " if (attrp != NULL) {\n" " s = posix_spawnattr_destroy(attrp);\n" " if (s != 0)\n" " errExitEN(s, \"posix_spawnattr_destroy\");\n" " }\n" "\\&\n" " if (file_actionsp != NULL) {\n" " s = posix_spawn_file_actions_destroy(file_actionsp);\n" " if (s != 0)\n" " errExitEN(s, \"posix_spawn_file_actions_destroy\");\n" " }\n" "\\&\n" " printf(\"PID of child: %jd\\en\", (intmax_t) child_pid);\n" "\\&\n" " /* Monitor status of the child until it terminates. */\n" "\\&\n" " do {\n" " s = waitpid(child_pid, &status, WUNTRACED | WCONTINUED);\n" " if (s == -1)\n" " errExit(\"waitpid\");\n" "\\&\n" " printf(\"Child status: \");\n" " if (WIFEXITED(status)) {\n" " printf(\"exited, status=%d\\en\", WEXITSTATUS(status));\n" " } else if (WIFSIGNALED(status)) {\n" " printf(\"killed by signal %d\\en\", WTERMSIG(status));\n" " } else if (WIFSTOPPED(status)) {\n" " printf(\"stopped by signal %d\\en\", WSTOPSIG(status));\n" " } else if (WIFCONTINUED(status)) {\n" " printf(\"continued\\en\");\n" " }\n" " } while (!WIFEXITED(status) && !WIFSIGNALED(status));\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(2), B(2), B(2), B(2), B(2), B(2), " "B(2), B(2), B(2), B(2), " "B(2), B(2), B(3), " "B(3), " "B(3), " "B(3), B(3), " "B(3), B(3), " "B(3), B(3), " "B(3), B(3), " "B(3), B(3), " "B(3), B(3), " "B(3), B(3), " "B(3), B(3), " "B(3), Ispawn.hE>, Base Definitions volume of " "POSIX.1-2001, I" msgstr "" "B(2), B(2), B(2), B(2), B(2), B(2), " "B(2), B(2), B(2), B(2), " "B(2), B(2), B(3), " "B(3), " "B(3), " "B(3), B(3), " "B(3), B(3), " "B(3), B(3), " "B(3), B(3), " "B(3), B(3), " "B(3), B(3), " "B(3), B(3), " "B(3), B(3), " "B(3), Ispawn.hE>, Base Definitions volume of " "POSIX.1-2001, I" #. type: TH #: debian-bookworm #, no-wrap msgid "2023-02-05" msgstr "5 февраля 2023 г." #. type: TH #: debian-bookworm #, no-wrap msgid "Linux man-pages 6.03" msgstr "Linux man-pages 6.03" #. type: SH #: debian-bookworm #, no-wrap msgid "VERSIONS" msgstr "ВЕРСИИ" #. type: Plain text #: debian-bookworm msgid "" "The B() and B() functions are available since " "glibc 2.2." msgstr "" "Функции B() и B() доступны в glibc начиная с " "версии 2.2." #. FIXME . This piece belongs in spawnattr_setflags(3) #. The #. .B POSIX_SPAWN_USEVFORK #. flag is a GNU extension; the #. .B _GNU_SOURCE #. feature test macro must be defined (before including any header files) #. to obtain the definition of this constant. #. type: Plain text #: debian-bookworm msgid "POSIX.1-2001, POSIX.1-2008." msgstr "POSIX.1-2001, POSIX.1-2008." #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, fuzzy, no-wrap #| msgid "" #| "#include Espawn.hE\n" #| "#include Estdio.hE\n" #| "#include Eunistd.hE\n" #| "#include Estdlib.hE\n" #| "#include Estring.hE\n" #| "#include Ewait.hE\n" #| "#include Eerrno.hE\n" msgid "" "#include Eerrno.hE\n" "#include Espawn.hE\n" "#include Estdint.hE\n" "#include Estdio.hE\n" "#include Estdlib.hE\n" "#include Estring.hE\n" "#include Eunistd.hE\n" "#include Ewait.hE\n" msgstr "" "#include Espawn.hE\n" "#include Estdio.hE\n" "#include Eunistd.hE\n" "#include Estdlib.hE\n" "#include Estring.hE\n" "#include Ewait.hE\n" "#include Eerrno.hE\n" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid "" "#define errExit(msg) do { perror(msg); \\e\n" " exit(EXIT_FAILURE); } while (0)\n" msgstr "" "#define errExit(msg) do { perror(msg); \\e\n" " exit(EXIT_FAILURE); } while (0)\n" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid "" "#define errExitEN(en, msg) \\e\n" " do { errno = en; perror(msg); \\e\n" " exit(EXIT_FAILURE); } while (0)\n" msgstr "" "#define errExitEN(en, msg) \\e\n" " do { errno = en; perror(msg); \\e\n" " exit(EXIT_FAILURE); } while (0)\n" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid "char **environ;\n" msgstr "char **environ;\n" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid "" "int\n" "main(int argc, char *argv[])\n" "{\n" " pid_t child_pid;\n" " int s, opt, status;\n" " sigset_t mask;\n" " posix_spawnattr_t attr;\n" " posix_spawnattr_t *attrp;\n" " posix_spawn_file_actions_t file_actions;\n" " posix_spawn_file_actions_t *file_actionsp;\n" msgstr "" "int\n" "main(int argc, char *argv[])\n" "{\n" " pid_t child_pid;\n" " int s, opt, status;\n" " sigset_t mask;\n" " posix_spawnattr_t attr;\n" " posix_spawnattr_t *attrp;\n" " posix_spawn_file_actions_t file_actions;\n" " posix_spawn_file_actions_t *file_actionsp;\n" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid "" " /* Parse command-line options, which can be used to specify an\n" " attributes object and file actions object for the child. */\n" msgstr "" " /* разбор параметров командной строки, которые можно использовать\n" " в потомке в качестве объекта атрибутов и файловых действий */\n" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid "" " attrp = NULL;\n" " file_actionsp = NULL;\n" msgstr "" " attrp = NULL;\n" " file_actionsp = NULL;\n" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, fuzzy, no-wrap #| msgid "" #| " while ((opt = getopt(argc, argv, \"sc\")) != -1) {\n" #| " switch (opt) {\n" #| " case \\(aqc\\(aq: /* -c: close standard output in child */\n" msgid "" " while ((opt = getopt(argc, argv, \"sc\")) != -1) {\n" " switch (opt) {\n" " case \\[aq]c\\[aq]: /* -c: close standard output in child */\n" msgstr "" " while ((opt = getopt(argc, argv, \"sc\")) != -1) {\n" " switch (opt) {\n" " case \\(aqc\\(aq: /* -c: закрыть стандартный вывод в потомке */\n" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, fuzzy, no-wrap #| msgid "" #| " /* Create a file actions object and add a \"close\"\n" #| " action to it */\n" msgid "" " /* Create a file actions object and add a \"close\"\n" " action to it. */\n" msgstr "" " /* создаём объект файловых действий и добавляем в него\n" " действие «закрыть» */\n" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid "" " s = posix_spawn_file_actions_init(&file_actions);\n" " if (s != 0)\n" " errExitEN(s, \"posix_spawn_file_actions_init\");\n" msgstr "" " s = posix_spawn_file_actions_init(&file_actions);\n" " if (s != 0)\n" " errExitEN(s, \"posix_spawn_file_actions_init\");\n" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid "" " s = posix_spawn_file_actions_addclose(&file_actions,\n" " STDOUT_FILENO);\n" " if (s != 0)\n" " errExitEN(s, \"posix_spawn_file_actions_addclose\");\n" msgstr "" " s = posix_spawn_file_actions_addclose(&file_actions,\n" " STDOUT_FILENO);\n" " if (s != 0)\n" " errExitEN(s, \"posix_spawn_file_actions_addclose\");\n" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid "" " file_actionsp = &file_actions;\n" " break;\n" msgstr "" " file_actionsp = &file_actions;\n" " break;\n" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, fuzzy, no-wrap #| msgid " case \\(aqs\\(aq: /* -s: block all signals in child */\n" msgid " case \\[aq]s\\[aq]: /* -s: block all signals in child */\n" msgstr " case \\(aqs\\(aq: /* -s: блокировать все сигналы в потомке */\n" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, fuzzy, no-wrap #| msgid "" #| " /* Create an attributes object and add a \"set signal mask\"\n" #| " action to it */\n" msgid "" " /* Create an attributes object and add a \"set signal mask\"\n" " action to it. */\n" msgstr "" " /* создаём объект атрибутов и добавляем в него действие \n" " «назначения сигнальной маски» */\n" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid "" " s = posix_spawnattr_init(&attr);\n" " if (s != 0)\n" " errExitEN(s, \"posix_spawnattr_init\");\n" " s = posix_spawnattr_setflags(&attr, POSIX_SPAWN_SETSIGMASK);\n" " if (s != 0)\n" " errExitEN(s, \"posix_spawnattr_setflags\");\n" msgstr "" " s = posix_spawnattr_init(&attr);\n" " if (s != 0)\n" " errExitEN(s, \"posix_spawnattr_init\");\n" " s = posix_spawnattr_setflags(&attr, POSIX_SPAWN_SETSIGMASK);\n" " if (s != 0)\n" " errExitEN(s, \"posix_spawnattr_setflags\");\n" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid "" " sigfillset(&mask);\n" " s = posix_spawnattr_setsigmask(&attr, &mask);\n" " if (s != 0)\n" " errExitEN(s, \"posix_spawnattr_setsigmask\");\n" msgstr "" " sigfillset(&mask);\n" " s = posix_spawnattr_setsigmask(&attr, &mask);\n" " if (s != 0)\n" " errExitEN(s, \"posix_spawnattr_setsigmask\");\n" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid "" " attrp = &attr;\n" " break;\n" " }\n" " }\n" msgstr "" " attrp = &attr;\n" " break;\n" " }\n" " }\n" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, fuzzy, no-wrap #| msgid "" #| " /* Spawn the child. The name of the program to execute and the\n" #| " command-line arguments are taken from the command-line arguments\n" #| " of this program. The environment of the program execed in the\n" #| " child is made the same as the parent\\(aqs environment. */\n" msgid "" " /* Spawn the child. The name of the program to execute and the\n" " command-line arguments are taken from the command-line arguments\n" " of this program. The environment of the program execed in the\n" " child is made the same as the parent\\[aq]s environment. */\n" msgstr "" " /* Порождение потомка. Имя исполняемой программы и аргументы\n" " командной строки берутся из аргументов командной строки\n" " этой программы. Окружение исполняемой программы в потомке\n" " делается таким же как у родителя. */\n" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid "" " s = posix_spawnp(&child_pid, argv[optind], file_actionsp, attrp,\n" " &argv[optind], environ);\n" " if (s != 0)\n" " errExitEN(s, \"posix_spawn\");\n" msgstr "" " s = posix_spawnp(&child_pid, argv[optind], file_actionsp, attrp,\n" " &argv[optind], environ);\n" " if (s != 0)\n" " errExitEN(s, \"posix_spawn\");\n" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, fuzzy, no-wrap #| msgid " /* Destroy any objects that we created earlier */\n" msgid " /* Destroy any objects that we created earlier. */\n" msgstr " /* уничтожаем все объекты, которые мы создали ранее */\n" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid "" " if (attrp != NULL) {\n" " s = posix_spawnattr_destroy(attrp);\n" " if (s != 0)\n" " errExitEN(s, \"posix_spawnattr_destroy\");\n" " }\n" msgstr "" " if (attrp != NULL) {\n" " s = posix_spawnattr_destroy(attrp);\n" " if (s != 0)\n" " errExitEN(s, \"posix_spawnattr_destroy\");\n" " }\n" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid "" " if (file_actionsp != NULL) {\n" " s = posix_spawn_file_actions_destroy(file_actionsp);\n" " if (s != 0)\n" " errExitEN(s, \"posix_spawn_file_actions_destroy\");\n" " }\n" msgstr "" " if (file_actionsp != NULL) {\n" " s = posix_spawn_file_actions_destroy(file_actionsp);\n" " if (s != 0)\n" " errExitEN(s, \"posix_spawn_file_actions_destroy\");\n" " }\n" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, fuzzy, no-wrap #| msgid " printf(\"PID of child: %ld\\en\", (long) child_pid);\n" msgid " printf(\"PID of child: %jd\\en\", (intmax_t) child_pid);\n" msgstr " printf(\"PID потомка: %ld\\en\", (long) child_pid);\n" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, fuzzy, no-wrap #| msgid " /* Monitor status of the child until it terminates */\n" msgid " /* Monitor status of the child until it terminates. */\n" msgstr " /* отслеживаем состояние потомка до его завершения */\n" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid "" " do {\n" " s = waitpid(child_pid, &status, WUNTRACED | WCONTINUED);\n" " if (s == -1)\n" " errExit(\"waitpid\");\n" msgstr "" " do {\n" " s = waitpid(child_pid, &status, WUNTRACED | WCONTINUED);\n" " if (s == -1)\n" " errExit(\"waitpid\");\n" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid "" " printf(\"Child status: \");\n" " if (WIFEXITED(status)) {\n" " printf(\"exited, status=%d\\en\", WEXITSTATUS(status));\n" " } else if (WIFSIGNALED(status)) {\n" " printf(\"killed by signal %d\\en\", WTERMSIG(status));\n" " } else if (WIFSTOPPED(status)) {\n" " printf(\"stopped by signal %d\\en\", WSTOPSIG(status));\n" " } else if (WIFCONTINUED(status)) {\n" " printf(\"continued\\en\");\n" " }\n" " } while (!WIFEXITED(status) && !WIFSIGNALED(status));\n" msgstr "" " printf(\"Состояние потомка: \");\n" " if (WIFEXITED(status)) {\n" " printf(\"завершился, состояние=%d\\en\", WEXITSTATUS(status));\n" " } else if (WIFSIGNALED(status)) {\n" " printf(\"убит по сигналу %d\\en\", WTERMSIG(status));\n" " } else if (WIFSTOPPED(status)) {\n" " printf(\"остановлен по сигналу %d\\en\", WSTOPSIG(status));\n" " } else if (WIFCONTINUED(status)) {\n" " printf(\"выполняется\\en\");\n" " }\n" " } while (!WIFEXITED(status) && !WIFSIGNALED(status));\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"