15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
+
|
**
*******************************************************************************
**
** This file contains an implementation of a bi-directional popen().
*/
#include "config.h"
#include "popen.h"
#include <signal.h>
#ifdef _WIN32
#include <windows.h>
#include <fcntl.h>
/*
** Print a fatal error and quit.
*/
|
169
170
171
172
173
174
175
176
177
178
179
180
181
182
|
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
|
+
|
close(pin[0]);
close(pin[1]);
close(pout[0]);
close(pout[1]);
*pChildPid = 0;
return 1;
}
signal(SIGPIPE,SIG_IGN);
if( *pChildPid==0 ){
int fd;
int nErr = 0;
/* This is the child process */
close(0);
fd = dup(pout[0]);
if( fd!=0 ) nErr++;
|