POSIX_SPAWN_FILE_ACTIONS_ADDOPEN(3) Library Functions Manual POSIX_SPAWN_FILE_ACTIONS_ADDOPEN(3)

posix_spawn_file_actions_addclose, posix_spawn_file_actions_adddup2, posix_spawn_file_actions_addopenadd action to close, dup2 or open file descriptor to file actions object

#include <spawn.h>

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_addopen(posix_spawn_file_actions_t *file_actions, int fildes, const char *restrict path, int oflag, mode_t mode);

These function add an action to close(2), dup2(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 () function adds an action that causes
    close(fildes);

    to be called.

  • The () 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 () 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 () makes a copy of the path argument.

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

posix_spawn(3), posix_spawn_file_actions_init(3), posix_spawnp(3)

These functions conform to IEEE Std 1003.1-2001 (“POSIX.1”).

Ed Schouten <ed@FreeBSD.org>

March 29, 2022 OpenBSD 7.6