Some older POSIX-flavored operating systems may not have adopted
O_CLOEXEC yet.
See https://bugzilla.gnome.org/show_bug.cgi?id=712136.
#define O_BINARY 0
#endif
+#ifndef O_CLOEXEC
+#define O_CLOEXEC 0
+#else
+#define HAVE_O_CLOEXEC 1
+#endif
+
#define COMMUNICATE_READ_SIZE 4096
/* A GSubprocess can have two possible states: running and not.
g_free (display_name);
/* fall through... */
}
+#ifndef HAVE_O_CLOEXEC
+ else
+ fcntl (my_fd, F_SETFD, FD_CLOEXEC);
+#endif
return my_fd;
}