POSIX_SPAWNATTR_GETPROCDESCP_NP(3)

NAME
posix_spawnattr_getprocdesp_np, posix_spawnattr_setprocdescp_np - get and set the spawn-procdescp attribute of a spawn attributes object

LIBRARY
libc

SYNOPSIS
#include <spawn.h>
int
posix_spawnattr_getprocdescp_np(const posix_spawnattr_t *restrict attr, int **restrict fdpp, int *restrict pdrflagsp);
int
posix_spawnattr_setprocdescp_np(posix_spawnattr_t *attr, int *restrict fdp, int pdrflags);

DESCRIPTION
The posix_spawnattr_getprocdescp_np() function obtains the value of the spawn-procdescp attribute from the attributes object referenced by attr.

The posix_spawnattr_procdescp_np() function sets the spawn-procdescp attribute in an initialized attributes object referenced by attr.

The spawn-procdescp attribute provides the location where the child process's file descriptor will be stored after a successful spawn. Setting the attribute to a non-NULL value implicitly request the creation of the file descriptor that references the child process. It wiil be created by the pdrfork(2) system call. which will be used instead of fork/vfork/rfork(2) when the attribute is set to NULL.

If the attribute is set to a value other then NULL, it must be a valid pointer to a variable of int type, where the resulting descriptor will be stored. The pdrflags argument specifies additional flags that are accepted by the pdfork(2) system call. See its description for the list of the valid flags. Note that the PD_CLOEXEC flag is always set, preventing leakage of the process descriptor into the newly created child.

The default value for the spawn-procdescp attribute is NULL, which means that no process descriptor will be created.

RETURN VALUES
The posix_spawnattr_getprocdescp_np() and posix_spawnattr_setprocdescp_np() functions return zero.

SEE ALSO
posix_spawn(3), posix_spawnattr_destroy(3), posix_spawnattr_init(3), posix_spawnp(3)

STANDARDS
The posix_spawnattr_getprocdescp_np() and posix_spawnattr_setprocdescp_np() are FreeBSD extensions that first appeared in FreeBSD 16.0.