newlib-cygwin/winsup/utils/cygwin-console-helper.cc

27 lines
701 B
C++
Raw Normal View History

2009-07-05 08:01:26 +08:00
#include <windows.h>
#include <stdio.h>
2009-07-05 08:01:26 +08:00
int
main (int argc, char **argv)
{
char *end;
if (argc < 3)
2009-07-05 08:01:26 +08:00
exit (1);
HANDLE h = (HANDLE) strtoull (argv[1], &end, 0);
2009-07-05 08:01:26 +08:00
SetEvent (h);
if (argc == 4) /* Pseudo console helper mode for PTY */
{
SetConsoleCtrlHandler (NULL, TRUE);
HANDLE hPipe = (HANDLE) strtoull (argv[3], &end, 0);
char buf[64];
sprintf (buf, "StdHandles=%p,%p\n",
GetStdHandle (STD_INPUT_HANDLE),
GetStdHandle (STD_OUTPUT_HANDLE));
DWORD dwLen;
WriteFile (hPipe, buf, strlen (buf), &dwLen, NULL);
CloseHandle (hPipe);
}
h = (HANDLE) strtoull (argv[2], &end, 0);
2009-07-05 08:01:26 +08:00
WaitForSingleObject (h, INFINITE);
exit (0);
}