POSIX_SPAWN_FILE_ACTIONS_ADDOPEN(3)

NAME
posix_spawn_file_actions_addchdir, posix_spawn_file_actions_addclose, posix_spawn_file_actions_adddup2, posix_spawn_file_actions_addfchdir, posix_spawn_file_actions_addopen - add action to change directory, close, dup2 or open file descriptor to file actions object

SYNOPSIS
#include <spawn.h>
int
posix_spawn_file_actions_addchdir(posix_spawn_file_actions_t *file_actions, const char *restrict path);
int
posix_spawn_file_actions_addclose(posix_spawn_file_actions_t *file_actions, int fildes);
int
posix_spawn_file_actions_adddup2(posix_spawn_file_actions_t *file_actions, int fildes, int newfildes);
int
posix_spawn_file_actions_addfchdir(posix_spawn_file_actions_t *file_actions, int fildes);
int
posix_spawn_file_actions_addopen(posix_spawn_file_actions_t *file_actions, int fildes, const char *restrict path, int oflag, mode_t mode);

DESCRIPTION
These functions add an action to chdir(2), close(2), dup2(2), fchdir(2), or open(2) a file descriptor to a posix_spawn(3) file actions object.

Actions are executed in order in the child process:

-   The posix_spawn_file_actions_addchdir() function adds an action that causes

        chdir(path);

    to be called.

-   The posix_spawn_file_actions_addclose() function adds an action that causes

        close(fildes);

    to be called.

-   The posix_spawn_file_actions_adddup2() function adds an action that causes

        dup2(fildes, newfildes);

    to be called. In addition, the action will cause the close-on-exec flag to be cleared on newfildes, even if newfildes equals fildes.

-   The posix_spawn_file_actions_addfchdir() function adds an action that causes

        fchdir(fildes);

    to be called.

-   The posix_spawn_file_actions_addopen() function adds an action that causes

        open(path, oflag, mode);

    to be called and the result to be forced as fildes (if fildes was already open before this action, the old file descriptor is closed before the action is performed).

    Note that posix_spawn_file_actions_addopen() makes a copy of the path argument.

RETURN VALUES
Upon successful completion, these functions return zero. Otherwise they may return EBADF for negative file descriptors, or ENOMEM if they run out of memory.

SEE ALSO
posix_spawn(3), posix_spawn_file_actions_init(3), posix_spawnp(3)

STANDARDS
These functions conform to p1003.1-2024.

AUTHORS
Ed Schouten <ed@FreeBSD.org>