Запись в указанный c уже запущенный процесс вместо создания нового экземпляра процесса - PullRequest
0 голосов
/ 27 марта 2020

Я написал некоторый код, который вызывает исполняемый файл и передает ему аргументы через строку cmd. Например, он вызовет my_process.exe -A my_argument.

Я хочу, чтобы моя программа my_process всегда работала в поисках ввода пользователя и вместо создания нового экземпляра нужного мне процесса. чтобы записать мои данные / аргументы в существующий процесс.

Я понимаю, что то, как я передаю параметры, изменится от начального запуска процесса (arg c, argv) по сравнению с использованием stdin.

Я также знаю, что мне придется изменить то, как я называю процесс, но я не уверен, что мне нужно изучить, чтобы сделать это.

#

РЕДАКТИРОВАТЬ Так, что я пытаюсь сделать sh, выполнив все это ниже:

Веб-сайт >> API веб-службы >> API оборудования >> PL C

Веб-сайт находится на сервере A, веб-служба и оборудование API на сервере B

ОС - Windows 10 Pro 64bit

PL C - программируемый контроллер c

Сайт отправит сообщение на мой веб-сервис. Веб-служба будет вызывать аппаратный API, который, в свою очередь, будет записывать или считывать данные в PL C.

Это работает при выполнении одного POST. Но при выполнении нескольких POSTS, если соединение между API-интерфейсом аппаратного обеспечения и PL C все еще открыто, оно выйдет из строя.

Соединение между API-интерфейсом аппаратного обеспечения и PL C похоже на COM-порт, а не на сокет (который вводит в заблуждение на основании руководства по программированию).

Итак, я пытался сохранить свой веб-API таким же, но создать другой процесс, который будет принимать все результаты из веб-API и помещать их в FIFO, а затем вставьте их в аппаратный API (который я всегда буду запускать и у меня будет постоянное соединение с pl c).

Так что на самом деле аппаратный API всегда будет работать и быть единым процессом, который получает данные, передаваемые ему. Служба очереди всегда будет работать, и веб-API передаст ей результаты.

Я рассмотрел следующее:

https://www.boost.org/doc/libs/1_37_0/doc/html/interprocess.html

дочерний / родительский процесс / ветвь / файловые дескрипторы / dup / dup2

Любые мысли или советы приветствуются.

...