xfreopen need not depend on freopen-safer
[gnulib.git] / lib / spawn_int.h
blob06b8004c8feb001e5a594eaec319318462dda178
1 /* Copyright (C) 2000, 2008-2019 Free Software Foundation, Inc.
2 This file is part of the GNU C Library.
4 This program is free software: you can redistribute it and/or modify
5 it under the terms of the GNU General Public License as published by
6 the Free Software Foundation; either version 3 of the License, or
7 (at your option) any later version.
9 This program is distributed in the hope that it will be useful,
10 but WITHOUT ANY WARRANTY; without even the implied warranty of
11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 GNU General Public License for more details.
14 You should have received a copy of the GNU General Public License
15 along with this program. If not, see <https://www.gnu.org/licenses/>. */
17 #include <sys/types.h>
19 /* Data structure to contain the action information. */
20 struct __spawn_action
22 enum
24 spawn_do_close,
25 spawn_do_dup2,
26 spawn_do_open,
27 spawn_do_chdir
28 } tag;
30 union
32 struct
34 int fd;
35 } close_action;
36 struct
38 int fd;
39 int newfd;
40 } dup2_action;
41 struct
43 int fd;
44 const char *path;
45 int oflag;
46 mode_t mode;
47 } open_action;
48 struct
50 const char *path;
51 } chdir_action;
52 } action;
55 #if !_LIBC
56 # define __posix_spawn_file_actions_realloc gl_posix_spawn_file_actions_realloc
57 #endif
58 extern int __posix_spawn_file_actions_realloc (posix_spawn_file_actions_t *
59 file_actions);
61 #if !_LIBC
62 # define __spawni gl_posix_spawn_internal
63 #endif
64 extern int __spawni (pid_t *pid, const char *path,
65 const posix_spawn_file_actions_t *file_actions,
66 const posix_spawnattr_t *attrp, char *const argv[],
67 char *const envp[], int use_path);