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 /templates/man3/posix_spawn.3.pot | |
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 'templates/man3/posix_spawn.3.pot')
-rw-r--r-- | templates/man3/posix_spawn.3.pot | 1415 |
1 files changed, 1415 insertions, 0 deletions
diff --git a/templates/man3/posix_spawn.3.pot b/templates/man3/posix_spawn.3.pot new file mode 100644 index 00000000..7cb7aec4 --- /dev/null +++ b/templates/man3/posix_spawn.3.pot @@ -0,0 +1,1415 @@ +# SOME DESCRIPTIVE TITLE +# Copyright (C) YEAR Free Software Foundation, Inc. +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"POT-Creation-Date: 2024-03-01 17:04+0100\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" +"Language-Team: LANGUAGE <LL@li.org>\n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\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 "" + +#. type: TH +#: archlinux fedora-40 fedora-rawhide mageia-cauldron +#, no-wrap +msgid "Linux man-pages 6.06" +msgstr "" + +#. 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 "" + +#. 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>spawn.hE<gt>>\n" +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<int posix_spawn(pid_t *restrict >I<pid>B<, const char *restrict >I<path>B<,>\n" +"B< const posix_spawn_file_actions_t *restrict >I<file_actions>B<,>\n" +"B< const posix_spawnattr_t *restrict >I<attrp>B<,>\n" +"B< char *const >I<argv>B<[restrict],>\n" +"B< char *const >I<envp>B<[restrict]);>\n" +"B<int posix_spawnp(pid_t *restrict >I<pid>B<, const char *restrict >I<file>B<,>\n" +"B< const posix_spawn_file_actions_t *restrict >I<file_actions>B<,>\n" +"B< const posix_spawnattr_t *restrict >I<attrp>B<,>\n" +"B< char *const >I<argv>B<[restrict],>\n" +"B< char *const >I<envp>B<[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<posix_spawn>() and B<posix_spawnp>() 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<fork>(2) " +"system call. These machines are generally small, embedded systems lacking " +"MMU support." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"The B<posix_spawn>() and B<posix_spawnp>() functions provide the " +"functionality of a combined B<fork>(2) and B<exec>(3), with some optional " +"housekeeping steps in the child process before the B<exec>(3). These " +"functions are not meant to replace the B<fork>(2) and B<execve>(2) system " +"calls. In fact, they provide only a subset of the functionality that can be " +"achieved by using the system calls." +msgstr "" + +#. 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<posix_spawn>() and B<posix_spawnp>() is the " +"manner in which they specify the file to be executed by the child process. " +"With B<posix_spawn>(), the executable file is specified as a pathname (which " +"can be absolute or relative). With B<posix_spawnp>(), the executable file " +"is specified as a simple filename; the system searches for this file in the " +"list of directories specified by B<PATH> (in the same way as for " +"B<execvp>(3)). For the remainder of this page, the discussion is phrased in " +"terms of B<posix_spawn>(), with the understanding that B<posix_spawnp>() " +"differs only on the point just described." +msgstr "" + +#. 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 +#, no-wrap +msgid "I<pid>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"points to a buffer that is used to return the process ID of the new child " +"process." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "I<file_actions>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"points to a I<spawn file actions object> that specifies file-related actions " +"to be performed in the child between the B<fork>(2) and B<exec>(3) steps. " +"This object is initialized and populated before the B<posix_spawn>() call " +"using B<posix_spawn_file_actions_init>(3) and the " +"B<posix_spawn_file_actions_*>() functions." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "I<attrp>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"points to an I<attributes objects> that specifies various attributes of the " +"created child process. This object is initialized and populated before the " +"B<posix_spawn>() call using B<posix_spawnattr_init>(3) and the " +"B<posix_spawnattr_*>() functions." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "I<argv>" +msgstr "" + +#. type: TQ +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "I<envp>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"specify the argument list and environment for the program that is executed " +"in the child process, as for B<execve>(2)." +msgstr "" + +#. 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<fork>() step, the pre-B<exec>() step (executed in the child), and the " +"B<exec>() step (executed in the child)." +msgstr "" + +#. 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 "" + +#. 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, the B<posix_spawn>() function commences by calling " +"B<clone>(2) with B<CLONE_VM> and B<CLONE_VFORK> flags. Older " +"implementations use B<fork>(2), or possibly B<vfork>(2) (see below)." +msgstr "" + +#. 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<posix_spawn>() function then returns control to the parent process." +msgstr "" + +#. 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<wait>(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 "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Before glibc 2.24, the child process is created using B<vfork>(2) instead " +"of B<fork>(2) when either of the following is true:" +msgstr "" + +#. type: IP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "\\[bu]" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"the I<spawn-flags> element of the attributes object pointed to by I<attrp> " +"contains the GNU-specific flag B<POSIX_SPAWN_USEVFORK>; or" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"I<file_actions> is NULL and the I<spawn-flags> element of the attributes " +"object pointed to by I<attrp> does I<not> contain B<POSIX_SPAWN_SETSIGMASK>, " +"B<POSIX_SPAWN_SETSIGDEF>, B<POSIX_SPAWN_SETSCHEDPARAM>, " +"B<POSIX_SPAWN_SETSCHEDULER>, B<POSIX_SPAWN_SETPGROUP>, or " +"B<POSIX_SPAWN_RESETIDS>." +msgstr "" + +#. 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<vfork>(2) is used if the caller requests it, or if there " +"is no cleanup expected in the child before it B<exec>(3)s the requested file." +msgstr "" + +#. 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 "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"In between the B<fork()> and the B<exec()> steps, a child process may need " +"to perform a set of housekeeping actions. The B<posix_spawn>() and " +"B<posix_spawnp>() 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<attrp> and the file actions object pointed to by " +"I<file_actions>. In the child, processing is done in the following sequence:" +msgstr "" + +#. type: IP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "(1)" +msgstr "" + +#. 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<attrp>." +msgstr "" + +#. type: IP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "(2)" +msgstr "" + +#. 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<file_actions> argument, are performed in " +"the order that they were specified using calls to the " +"B<posix_spawn_file_actions_add*>() functions." +msgstr "" + +#. type: IP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "(3)" +msgstr "" + +#. 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<FD_CLOEXEC> flag set are closed." +msgstr "" + +#. 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<attrp> and the file actions in the " +"object pointed to by I<file_actions>, will be affected as though the child " +"was created with B<fork>(2) and it executed the program with B<execve>(2)." +msgstr "" + +#. 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<attrp>. The I<spawn-flags> attribute (set using " +"B<posix_spawnattr_setflags>(3)) controls the general actions that occur, " +"and other attributes in the object specify values to be used during those " +"actions." +msgstr "" + +#. 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<spawn-flags> 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 "B<POSIX_SPAWN_SETSIGMASK>" +msgstr "" + +#. 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<spawn-sigmask> " +"attribute of the object pointed to by I<attrp>. If the " +"B<POSIX_SPAWN_SETSIGMASK> flag is not set, then the child inherits the " +"parent's signal mask." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B<POSIX_SPAWN_SETSIGDEF>" +msgstr "" + +#. 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<spawn-" +"sigdefault> attribute of the object pointed to by I<attrp> to the default. " +"For the treatment of the dispositions of signals not specified in the " +"I<spawn-sigdefault> attribute, or the treatment when " +"B<POSIX_SPAWN_SETSIGDEF> is not specified, see B<execve>(2)." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B<POSIX_SPAWN_SETSCHEDPARAM>" +msgstr "" + +#. (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<POSIX_SPAWN_SETSCHEDULER> flag is not set, " +"then set the scheduling parameters to the parameters specified in the " +"I<spawn-schedparam> attribute of the object pointed to by I<attrp>." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B<POSIX_SPAWN_SETSCHEDULER>" +msgstr "" + +#. 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<spawn-" +"schedpolicy> attribute of the object pointed to by I<attrp>." +msgstr "" + +#. 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<spawn-" +"schedparam> attribute of the object pointed to by I<attrp> (but see BUGS)." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"If the B<POSIX_SPAWN_SETSCHEDPARAM> and B<POSIX_SPAWN_SETSCHEDPOLICY> flags " +"are not specified, the child inherits the corresponding scheduling " +"attributes from the parent." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B<POSIX_SPAWN_RESETIDS>" +msgstr "" + +#. 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<execve>(2))." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B<POSIX_SPAWN_SETPGROUP>" +msgstr "" + +#. 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<spawn-pgroup> " +"attribute of the object pointed to by I<attrp>. If the I<spawn-pgroup> " +"attribute has the value 0, the child's process group ID is made the same as " +"its process ID. If the B<POSIX_SPAWN_SETPGROUP> flag is not set, the child " +"inherits the parent's process group ID." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B<POSIX_SPAWN_USEVFORK>" +msgstr "" + +#. 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<fork()> step to use B<vfork>(2) instead of " +"B<fork>(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 +#, no-wrap +msgid "B<POSIX_SPAWN_SETSID> (since glibc 2.26)" +msgstr "" + +#. 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<setsid>(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<attrp> is NULL, then the default behaviors described above for each " +"flag apply." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"The I<file_actions> 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<exec>(3). If I<file_actions> is NULL, " +"then no special action is taken, and standard B<exec>(3) semantics " +"apply\\[em]file descriptors open before the exec remain open in the new " +"process, except those for which the B<FD_CLOEXEC> flag has been set. File " +"locks remain in place." +msgstr "" + +#. 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<file_actions> is not NULL, then it contains an ordered set of requests " +"to B<open>(2), B<close>(2), and B<dup2>(2) files. These requests are added " +"to the I<file_actions> by B<posix_spawn_file_actions_addopen>(3), " +"B<posix_spawn_file_actions_addclose>(3), and " +"B<posix_spawn_file_actions_adddup2>(3). The requested operations are " +"performed in the order they were added to I<file_actions>." +msgstr "" + +#. 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 "" + +#. 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 "" + +#. 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 "" + +#. 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<envp> argument, which is " +"interpreted as if it had been passed to B<execve>(2). The arguments to the " +"created process come from the I<argv> argument, which is processed as for " +"B<execve>(2)." +msgstr "" + +#. 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 +msgid "" +"Upon successful completion, B<posix_spawn>() and B<posix_spawnp>() place " +"the PID of the child process in I<pid>, and return 0. If there is an error " +"during the B<fork()> step, then no child is created, the contents of I<*pid> " +"are unspecified, and these functions return an error number as described " +"below." +msgstr "" + +#. 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<exec>() " +"initialization. In addition, the B<exec>(3) may fail. In all of these " +"cases, the child process will exit with the exit value of 127." +msgstr "" + +#. 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 +msgid "" +"The B<posix_spawn>() and B<posix_spawnp>() functions fail only in the case " +"where the underlying B<fork>(2), B<vfork>(2), or B<clone>(2) call fails; in " +"these cases, these functions return an error number, which will be one of " +"the errors described for B<fork>(2), B<vfork>(2), or B<clone>(2)." +msgstr "" + +#. 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<ENOSYS>" +msgstr "" + +#. 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 "" + +#. 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 "" + +#. 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<attrp> (for non-file actions) and I<file_actions> In POSIX " +"parlance, the I<posix_spawnattr_t> and I<posix_spawn_file_actions_t> 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 "" + +#. 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 +msgid "" +"According to POSIX, it is unspecified whether fork handlers established with " +"B<pthread_atfork>(3) are called when B<posix_spawn>() 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<fork>(2)." +msgstr "" + +#. 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<posix_spawn>() as B<fexecve>(3) is to B<execve>(2)). However, this " +"functionality can be obtained by specifying the I<path> argument as one of " +"the files in the caller's I</proc/self/fd> directory." +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 "" + +#. 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<POSIX_SPAWN_SETSCHEDULER> is specified in I<spawn-" +"flags>, then the B<POSIX_SPAWN_SETSCHEDPARAM> (if present) is ignored. " +"However, before glibc 2.14, calls to B<posix_spawn>() failed with an error " +"if B<POSIX_SPAWN_SETSCHEDULER> was specified without also specifying " +"B<POSIX_SPAWN_SETSCHEDPARAM>." +msgstr "" + +#. 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 "" + +#. 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<date>(1) command is executed in the child, and the " +"B<posix_spawn>() call employs no file actions or attributes objects." +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<./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 "" + +#. 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<date>(1) fails when trying to perform output and exits with a status of 1." +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<./a.out -c date>\n" +"PID of child: 7636\n" +"date: write error: Bad file descriptor\n" +"Child status: exited, status=1\n" +msgstr "" + +#. 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<kill>(1) (i.e., B<SIGTERM>) fails, because that signal is " +"blocked. Therefore, to kill the child, B<SIGKILL> is necessary (B<SIGKILL> " +"can't be blocked)." +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<./a.out -s sleep 60 &>\n" +"[1] 7637\n" +"$ PID of child: 7638\n" +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<kill 7638>\n" +"$ B<kill -KILL 7638>\n" +"$ Child status: killed by signal 9\n" +"[1]+ Done ./a.out -s sleep 60\n" +msgstr "" + +#. 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<exec>(3) " +"fails and the child exits with a status of 127." +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<./a.out xxxxx\n" +"PID of child: 10190\n" +"Child status: exited, status=127>\n" +msgstr "" + +#. 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 E<lt>errno.hE<gt>\n" +"#include E<lt>spawn.hE<gt>\n" +"#include E<lt>stdint.hE<gt>\n" +"#include E<lt>stdio.hE<gt>\n" +"#include E<lt>stdlib.hE<gt>\n" +"#include E<lt>string.hE<gt>\n" +"#include E<lt>unistd.hE<gt>\n" +"#include E<lt>wait.hE<gt>\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<close>(2), B<dup2>(2), B<execl>(2), B<execlp>(2), B<fork>(2), B<open>(2), " +"B<sched_setparam>(2), B<sched_setscheduler>(2), B<setpgid>(2), B<setuid>(2), " +"B<sigaction>(2), B<sigprocmask>(2), B<posix_spawn_file_actions_addclose>(3), " +"B<posix_spawn_file_actions_adddup2>(3), " +"B<posix_spawn_file_actions_addopen>(3), " +"B<posix_spawn_file_actions_destroy>(3), B<posix_spawn_file_actions_init>(3), " +"B<posix_spawnattr_destroy>(3), B<posix_spawnattr_getflags>(3), " +"B<posix_spawnattr_getpgroup>(3), B<posix_spawnattr_getschedparam>(3), " +"B<posix_spawnattr_getschedpolicy>(3), B<posix_spawnattr_getsigdefault>(3), " +"B<posix_spawnattr_getsigmask>(3), B<posix_spawnattr_init>(3), " +"B<posix_spawnattr_setflags>(3), B<posix_spawnattr_setpgroup>(3), " +"B<posix_spawnattr_setschedparam>(3), B<posix_spawnattr_setschedpolicy>(3), " +"B<posix_spawnattr_setsigdefault>(3), B<posix_spawnattr_setsigmask>(3), " +"B<pthread_atfork>(3), I<E<lt>spawn.hE<gt>>, Base Definitions volume of " +"POSIX.1-2001, I<http://www.opengroup.org/unix/online.html>" +msgstr "" + +#. type: TH +#: debian-bookworm +#, no-wrap +msgid "2023-02-05" +msgstr "" + +#. type: TH +#: debian-bookworm +#, no-wrap +msgid "Linux man-pages 6.03" +msgstr "" + +#. type: SH +#: debian-bookworm +#, no-wrap +msgid "VERSIONS" +msgstr "" + +#. type: Plain text +#: debian-bookworm +msgid "" +"The B<posix_spawn>() and B<posix_spawnp>() functions are available since " +"glibc 2.2." +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 +#: debian-bookworm +msgid "POSIX.1-2001, POSIX.1-2008." +msgstr "" + +#. type: Plain text +#: debian-bookworm opensuse-leap-15-6 +#, no-wrap +msgid "" +"#include E<lt>errno.hE<gt>\n" +"#include E<lt>spawn.hE<gt>\n" +"#include E<lt>stdint.hE<gt>\n" +"#include E<lt>stdio.hE<gt>\n" +"#include E<lt>stdlib.hE<gt>\n" +"#include E<lt>string.hE<gt>\n" +"#include E<lt>unistd.hE<gt>\n" +"#include E<lt>wait.hE<gt>\n" +msgstr "" + +#. 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 "" + +#. 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 "" + +#. type: Plain text +#: debian-bookworm opensuse-leap-15-6 +#, no-wrap +msgid "char **environ;\n" +msgstr "" + +#. 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 "" + +#. 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 "" + +#. type: Plain text +#: debian-bookworm opensuse-leap-15-6 +#, no-wrap +msgid "" +" attrp = NULL;\n" +" file_actionsp = NULL;\n" +msgstr "" + +#. type: Plain text +#: debian-bookworm opensuse-leap-15-6 +#, no-wrap +msgid "" +" while ((opt = getopt(argc, argv, \"sc\")) != -1) {\n" +" switch (opt) {\n" +" case \\[aq]c\\[aq]: /* -c: close standard output in child */\n" +msgstr "" + +#. type: Plain text +#: debian-bookworm opensuse-leap-15-6 +#, no-wrap +msgid "" +" /* Create a file actions object and add a \"close\"\n" +" action to it. */\n" +msgstr "" + +#. 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 "" + +#. 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 "" + +#. type: Plain text +#: debian-bookworm opensuse-leap-15-6 +#, no-wrap +msgid "" +" file_actionsp = &file_actions;\n" +" break;\n" +msgstr "" + +#. type: Plain text +#: debian-bookworm opensuse-leap-15-6 +#, no-wrap +msgid " case \\[aq]s\\[aq]: /* -s: block all signals in child */\n" +msgstr "" + +#. type: Plain text +#: debian-bookworm opensuse-leap-15-6 +#, no-wrap +msgid "" +" /* Create an attributes object and add a \"set signal mask\"\n" +" action to it. */\n" +msgstr "" + +#. 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 "" + +#. 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 "" + +#. type: Plain text +#: debian-bookworm opensuse-leap-15-6 +#, no-wrap +msgid "" +" attrp = &attr;\n" +" break;\n" +" }\n" +" }\n" +msgstr "" + +#. type: Plain text +#: debian-bookworm opensuse-leap-15-6 +#, 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\\[aq]s environment. */\n" +msgstr "" + +#. 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 "" + +#. type: Plain text +#: debian-bookworm opensuse-leap-15-6 +#, no-wrap +msgid " /* Destroy any objects that we created earlier. */\n" +msgstr "" + +#. 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 "" + +#. 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 "" + +#. type: Plain text +#: debian-bookworm opensuse-leap-15-6 +#, no-wrap +msgid " printf(\"PID of child: %jd\\en\", (intmax_t) child_pid);\n" +msgstr "" + +#. type: Plain text +#: debian-bookworm opensuse-leap-15-6 +#, no-wrap +msgid " /* Monitor status of the child until it terminates. */\n" +msgstr "" + +#. 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 "" + +#. 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 "" + +#. type: Plain text +#: debian-bookworm opensuse-leap-15-6 +#, no-wrap +msgid "" +" exit(EXIT_SUCCESS);\n" +"}\n" +msgstr "" + +#. type: TH +#: debian-unstable opensuse-tumbleweed +#, no-wrap +msgid "2023-05-03" +msgstr "" + +#. type: TH +#: debian-unstable opensuse-tumbleweed +#, no-wrap +msgid "Linux man-pages 6.05.01" +msgstr "" + +#. type: TH +#: opensuse-leap-15-6 +#, no-wrap +msgid "2023-03-30" +msgstr "" + +#. type: TH +#: opensuse-leap-15-6 +#, no-wrap +msgid "Linux man-pages 6.04" +msgstr "" |