У меня есть консольное приложение Windows, которое запускает дочерний процесс. Как я могу отправить сообщение дочернему процессу? Я нашел такие функции, как PostMessage () / PeekMessage () - это то, что мне нужно, но, как я понимаю, он используется внутри одного приложения и использует HWND для идентификации целевого окна (у меня нет окон в приложении). Также я читал материалы о ipc, например именованные каналы тоже требуют HWND. Я хочу что-то вроде этого:
[program 1]
int main()
{
CreateProcess(.., processInfo);
SendMessage(processId, message);
}
[program 2]
int main()
{
while(1)
{
// do thw work
Sleep(5 * 1000);
// check message
if(PeekMessage(message,..))
{
break;
}
}
}
Дочерний процесс должен получить сообщение о том, что он должен завершить свою работу, а не немедленно, а завершить текущую итерацию. Вот почему я не использую сигналы, и блокировка «получения сообщения» тоже не подходит.