Как я могу общаться с несвязанным процессом, используя его интерфейс командной строки? - PullRequest
1 голос
/ 08 апреля 2010

Я пытаюсь написать программу на C ++ для Linux, которая взаимодействует с шахматным движком через интерфейс командной строки.Шахматные движки имеют стандартные протоколы, такие как UCI , поэтому, если бы я мог написать это, я мог бы использовать разные шахматные движки взаимозаменяемо.

Моя программа на C ++ должна запустить шахматный движок, отправить ему команду, получить вывод, отправить команду, получить вывод и т. Д. ... Как это сделать?

1 Ответ

1 голос
/ 08 апреля 2010

Вам нужно будет настроить некоторые трубы от стандартного входа и стандартного выхода.По умолчанию стандартный вывод из программы записывается в терминал, а стандартный ввод считывается из терминала.По сути, вы будете перенаправлять их из терминала в вашу программу.

Вы можете разветвить, настроить каналы, а затем запустить шахматы с помощью execve () из вашего дочернего процесса.На этом сайте есть простой пример того, как передать стандарт из основной программы в стандарт дочернего процесса:

http://www.cim.mcgill.ca/~franco/OpSys-304-427/messages/node92.html

...