/* Data structure to contain the action information. */ struct __spawn_action { enum { spawn_do_close, spawn_do_dup2, spawn_do_open } tag; union { struct { int fd; } close_action; struct { int fd; int newfd; } dup2_action; struct { int fd; char *path; int oflag; mode_t mode; } open_action; } action; }; #define SPAWN_XFLAGS_USE_PATH 0x1 #define SPAWN_XFLAGS_TRY_SHELL 0x2 extern int __posix_spawn_file_actions_realloc (posix_spawn_file_actions_t * file_actions); extern int __spawni (pid_t *pid, const char *path, const posix_spawn_file_actions_t *file_actions, const posix_spawnattr_t *attrp, char *const argv[], char *const envp[], int xflags);