+ int exitcode; // the exit code
+ bool async; // if true, delete us on process termination
+};
+
+// struct in which information is passed from wxExecute() to wxAppTraits
+// methods
+struct wxExecuteData
+{
+ wxExecuteData()
+ {
+ flags =
+ pid = 0;
+
+ process = NULL;
+
+#if wxUSE_STREAMS
+ bufOut =
+ bufErr = NULL;
+
+ fdOut =
+ fdErr = wxPipe::INVALID_FD;
+#endif // wxUSE_STREAMS
+ }
+
+ // get the FD corresponding to the read end of the process end detection
+ // pipe and close the write one
+ int GetEndProcReadFD()
+ {
+ const int fd = pipeEndProcDetect.Detach(wxPipe::Read);
+ pipeEndProcDetect.Close();
+ return fd;
+ }
+
+
+ // wxExecute() flags
+ int flags;
+
+ // the pid of the child process
+ int pid;
+
+ // the associated process object or NULL
+ wxProcess *process;
+
+ // pipe used for end process detection
+ wxPipe pipeEndProcDetect;
+
+#if wxUSE_STREAMS
+ // the input buffer bufOut is connected to stdout, this is why it is
+ // called bufOut and not bufIn
+ wxStreamTempInputBuffer *bufOut,
+ *bufErr;
+
+ // the corresponding FDs, -1 if not redirected
+ int fdOut,
+ fdErr;
+#endif // wxUSE_STREAMS