1/* GIO - GLib Input, Output and Streaming Library
2 *
3 * Copyright (C) 2012 Colin Walters <walters@verbum.org>
4 *
5 * This library is free software; you can redistribute it and/or
6 * modify it under the terms of the GNU Lesser General Public
7 * License as published by the Free Software Foundation; either
8 * version 2.1 of the License, or (at your option) any later version.
9 *
10 * This library is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 * Lesser General Public License for more details.
14 *
15 * You should have received a copy of the GNU Lesser General
16 * Public License along with this library; if not, see <http://www.gnu.org/licenses/>.
17 */
18
19#ifndef __G_SUBPROCESS_CONTEXT_PRIVATE_H__
20#define __G_SUBPROCESS_CONTEXT_PRIVATE_H__
21
22#include "gsubprocesslauncher.h"
23
24G_BEGIN_DECLS
25
26struct _GSubprocessLauncher
27{
28 GObject parent;
29
30 GSubprocessFlags flags;
31 gboolean path_from_envp;
32 char **envp;
33 char *cwd;
34
35#ifdef G_OS_UNIX
36 gint stdin_fd;
37 gchar *stdin_path;
38
39 gint stdout_fd;
40 gchar *stdout_path;
41
42 gint stderr_fd;
43 gchar *stderr_path;
44
45 GArray *source_fds; /* GSubprocessLauncher has ownership of the FD elements */
46 GArray *target_fds; /* always the same length as source_fds; elements are just integers and not FDs in this process */
47 gboolean closed_fd;
48
49 GSpawnChildSetupFunc child_setup_func;
50 gpointer child_setup_user_data;
51 GDestroyNotify child_setup_destroy_notify;
52#endif
53};
54
55void g_subprocess_set_launcher (GSubprocess *subprocess,
56 GSubprocessLauncher *launcher);
57
58G_END_DECLS
59
60#endif
61

source code of gtk/subprojects/glib/gio/gsubprocesslauncher-private.h