POSIX_SPAWNATTR_INIT(3) | Library Functions Manual | POSIX_SPAWNATTR_INIT(3)

# NAME

`posix_spawnattr_init`, `posix_spawnattr_destroy` —
initialize and destroy spawn attributes object

# LIBRARY

Standard C Library (libc, -lc)

# SYNOPSIS

`#include <spawn.h>`

int
`posix_spawnattr_init`(posix_spawnattr_t * attr);

int
`posix_spawnattr_destroy`(posix_spawnattr_t * attr);

# DESCRIPTION

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.

# RETURN VALUES

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

# ERRORS

The `posix_spawnattr_init`() function will fail if:

[`ENOMEM`]
  Insufficient memory exists to initialize the spawn file actions object.

# SEE ALSO

posix_spawn(3), posix_spawnp(3)

# STANDARDS

The `posix_spawnattr_init`() and `posix_spawnattr_destroy`() functions conform to IEEE Std 1003.1-2001 (“POSIX.1”).

# HISTORY

The `posix_spawnattr_init`() and `posix_spawnattr_destroy`() functions first appeared in FreeBSD 8.0 and imported for NetBSD 6.0.

# AUTHORS

Ed Schouten <ed@FreeBSD.org>

December 20, 2011 | NetBSD 9.3