4 #include <msvcrt/errno.h>
5 #include <msvcrt/stdio.h>
6 #include <msvcrt/stdlib.h>
7 #include <msvcrt/string.h>
8 #include <msvcrt/internal/file.h>
14 FILE *_popen (const char *cm, const char *md) /* program name, pipe mode */
17 HANDLE hReadPipe, hWritePipe;
18 STARTUPINFOA StartupInfo;
19 PROCESS_INFORMATION ProcessInformation;
23 // if ( !CreatePipe(&hReadPipe,&hWritePipe,NULL,1024))
26 StartupInfo.cb = sizeof(StartupInfo);
28 StartupInfo.hStdOutput = hWritePipe;
30 else if ( md == "w" ) {
31 StartupInfo.hStdInput = hReadPipe;
34 if (CreateProcessA("cmd.exe",(char *)cm,NULL,NULL,TRUE,
35 CREATE_NEW_CONSOLE,NULL,NULL,
37 &ProcessInformation) == FALSE)
42 pf = _fdopen( __fileno_alloc(hReadPipe, _fmode) , "r" );
45 pf = _fdopen( __fileno_alloc(hWritePipe, _fmode) , "w" );
48 pf->_name_to_remove = ProcessInformation.hProcess;
64 printf("Terminate Process\n");
65 // if (!TerminateProcess(pp->_name_to_remove,0))