posix_spawnattr_init,
    posix_spawnattr_destroy —
    initialize and destroy spawn attributes object
Standard C Library (libc, -lc)
#include
  <spawn.h>
int
  
  posix_spawnattr_init(posix_spawnattr_t
    * attr);
int
  
  posix_spawnattr_destroy(posix_spawnattr_t
    * attr);
The
    posix_spawnattr_init()
    function initializes a spawn attributes object attr
    with the default value for all of the individual attributes used by the
    implementation. Initializing an already initialized spawn attributes object
    may cause memory to be leaked.
The
    posix_spawnattr_destroy()
    function destroys a spawn attributes object. A destroyed
    attr attributes object can be reinitialized using
    posix_spawnattr_init(). The object should not be
    used after it has been destroyed.
A spawn attributes object is of type
    posix_spawnattr_t (defined in
    <spawn.h>) and is used to
    specify the inheritance of process attributes across a spawn operation.
The resulting spawn attributes object (possibly
    modified by setting individual attribute values), is used to modify the
    behavior of
    posix_spawn()
    or
    posix_spawnp().
    After a spawn attributes object has been used to spawn a process by a call
    to a posix_spawn() or
    posix_spawnp(), any function affecting the
    attributes object (including destruction) will not affect any process that
    has been spawned in this way.
Upon successful completion,
    posix_spawnattr_init() and
    posix_spawnattr_destroy() return zero; otherwise, an
    error number is returned to indicate the error.
The posix_spawnattr_init() function will
    fail if:
  - [
ENOMEM] 
  - Insufficient memory exists to initialize the spawn attributes object.
 
The posix_spawnattr_init() and
    posix_spawnattr_destroy() functions conform to
    IEEE Std 1003.1-2001 (“POSIX.1”).
The posix_spawnattr_init() and
    posix_spawnattr_destroy() functions first appeared
    in FreeBSD 8.0.