+ wxString cmd = "/bin/sh -c \'";
+ cmd << m_IfconfigPath << " >" << tmpfile << '\'';
+ /* I tried to add an option to wxExecute() to not close stdout,
+ so we could let ifconfig write directly to the tmpfile, but
+ this does not work. That should be faster, as it doesn´t call
+ the shell first. I have no idea why. :-( (KB) */
+#if 0
+ // temporarily redirect stdout/stderr:
+ int
+ new_stdout = dup(STDOUT_FILENO),
+ new_stderr = dup(STDERR_FILENO);
+ close(STDOUT_FILENO);
+ close(STDERR_FILENO);
+
+ int
+ // new stdout:
+ output_fd = open(tmpfile, O_CREAT|O_TRUNC, S_IRUSR|S_IWUSR),
+ // new stderr:
+ null_fd = open("/dev/null", O_CREAT, S_IRUSR|S_IWUSR);
+ // verify well behaved unix behaviour:
+ wxASSERT(output_fd == STDOUT_FILENO);
+ wxASSERT(null_fd == STDERR_FILENO);
+ int rc = wxExecute(m_IfconfigPath,TRUE /* sync */,NULL ,wxEXECUTE_DONT_CLOSE_FDS);
+ close(null_fd); close(output_fd);
+ // restore old stdout, stderr:
+ int test;
+ test = dup(new_stdout); close(new_stdout); wxASSERT(test == STDOUT_FILENO);
+ test = dup(new_stderr); close(new_stderr); wxASSERT(test == STDERR_FILENO);
+ if(rc == 0)
+#endif
+ if(wxExecute(cmd,TRUE /* sync */) == 0)