Provided by: manpages-posix-dev_2013a-2_all bug

PROLOG

       This  manual  page  is part of the POSIX Programmer's Manual.  The Linux implementation of
       this interface may differ (consult the corresponding Linux  manual  page  for  details  of
       Linux behavior), or the interface may not be implemented on Linux.

NAME

       posix_spawnattr_destroy,  posix_spawnattr_init  —  destroy and initialize spawn attributes
       object (ADVANCED REALTIME)

SYNOPSIS

       #include <spawn.h>

       int posix_spawnattr_destroy(posix_spawnattr_t *attr);
       int posix_spawnattr_init(posix_spawnattr_t *attr);

DESCRIPTION

       The  posix_spawnattr_destroy()  function  shall  destroy  a  spawn  attributes  object.  A
       destroyed  attr  attributes  object can be reinitialized using posix_spawnattr_init(); the
       results of otherwise referencing the object after it has been destroyed are undefined.  An
       implementation may cause posix_spawnattr_destroy() to set the object referenced by attr to
       an invalid value.

       The posix_spawnattr_init() function shall initialize a spawn attributes object  attr  with
       the default value for all of the individual attributes used by the implementation. Results
       are undefined if posix_spawnattr_init() is called specifying an already  initialized  attr
       attributes object.

       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.  POSIX.1‐2008
       does not define comparison or assignment operators for the type posix_spawnattr_t.

       Each  implementation  shall  document  the individual attributes it uses and their default
       values unless these values  are  defined  by  POSIX.1‐2008.   Attributes  not  defined  by
       POSIX.1‐2008,  their  default values, and the names of the associated functions to get and
       set those attribute values are implementation-defined.

       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) shall
       not affect any process that has been spawned in this way.

RETURN VALUE

       Upon successful completion,  posix_spawnattr_destroy()  and  posix_spawnattr_init()  shall
       return zero; otherwise, an error number shall be returned to indicate the error.

ERRORS

       The posix_spawnattr_init() function shall fail if:

       ENOMEM Insufficient memory exists to initialize the spawn attributes object.

       The posix_spawnattr_destroy() function may fail if:

       EINVAL The value specified by attr is invalid.

       The following sections are informative.

EXAMPLES

       None.

APPLICATION USAGE

       These  functions  are  part  of  the  Spawn  option  and  need  not  be  provided  on  all
       implementations.

RATIONALE

       The original spawn interface proposed in POSIX.1‐2008 defined the attributes that  specify
       the inheritance of process attributes across a spawn operation as a structure. In order to
       be able to separate optional individual attributes under their appropriate  options  (that
       is,  the  spawn-schedparam  and  spawn-schedpolicy  attributes  depending upon the Process
       Scheduling option), and also for  extensibility  and  consistency  with  the  newer  POSIX
       interfaces,  the  attributes  interface  has  been  changed  to  an opaque data type. This
       interface now consists of the type  posix_spawnattr_t,  representing  a  spawn  attributes
       object, together with associated functions to initialize or destroy the attributes object,
       and to set or get each individual attribute. Although the new object-oriented interface is
       more  verbose  than the original structure, it is simple to use, more extensible, and easy
       to implement.

FUTURE DIRECTIONS

       None.

SEE ALSO

       posix_spawn(), posix_spawnattr_getsigdefault(), posix_spawnattr_getflags(),
       posix_spawnattr_getpgroup(), posix_spawnattr_getschedparam(),
       posix_spawnattr_getschedpolicy(), posix_spawnattr_getsigmask()

       The Base Definitions volume of POSIX.1‐2008, <spawn.h>

COPYRIGHT

       Portions of this text are reprinted and  reproduced  in  electronic  form  from  IEEE  Std
       1003.1,  2013  Edition,  Standard  for Information Technology -- Portable Operating System
       Interface (POSIX), The Open Group Base Specifications Issue 7, Copyright (C) 2013  by  the
       Institute  of  Electrical  and  Electronics  Engineers,  Inc and The Open Group.  (This is
       POSIX.1-2008 with the  2013  Technical  Corrigendum  1  applied.)  In  the  event  of  any
       discrepancy  between  this  version and the original IEEE and The Open Group Standard, the
       original IEEE and The Open Group Standard is the referee document. The  original  Standard
       can be obtained online at http://www.unix.org/online.html .

       Any  typographical  or  formatting errors that appear in this page are most likely to have
       been introduced during the conversion of the source files to man page  format.  To  report
       such errors, see https://www.kernel.org/doc/man-pages/reporting_bugs.html .