Browse Source

fix handle dup.

experimental/zts_stdc_scanners
Daniel Beulshausen 25 years ago
parent
commit
223c0a2f7d
  1. 4
      TSRM/tsrm_win32.c

4
TSRM/tsrm_win32.c

@ -134,9 +134,11 @@ TSRM_API FILE* popen(const char *command, const char *type)
if (read) {
in = dupHandle(in, FALSE);
startup.hStdInput = GetStdHandle(STD_INPUT_HANDLE);
startup.hStdOutput = out;
} else {
out = dupHandle(out, FALSE);
startup.hStdInput = in;
startup.hStdOutput = GetStdHandle(STD_OUTPUT_HANDLE);
}
@ -152,11 +154,9 @@ TSRM_API FILE* popen(const char *command, const char *type)
proc = process_get(NULL);
if (read) {
in = dupHandle(in, FALSE);
fno = _open_osfhandle((long)in, _O_RDONLY | mode);
CloseHandle(out);
} else {
out = dupHandle(out, FALSE);
fno = _open_osfhandle((long)out, _O_WRONLY | mode);
CloseHandle(in);
}

Loading…
Cancel
Save