У меня есть исполняемый файл в Linux, который может взаимодействовать с stdin/stdout. Я пытаюсь написать программу на C++, которая может интерактивно вызывать эту программу, отправлять команды на свой stdin и записывать ее stdout.C++ Linux Interact Другая программа stdin/stdout
Я очень растерялся. Я не хочу раскошеливать свою программу (не так ли?). Я хочу, чтобы моя программа могла запускать «клиент», отправлять данные, получать выходные данные, отправлять больше данных, получать больше результатов и ... закрывать «клиент».
P.S. Да, я уверен, что это было задано раньше, но я потратил несколько часов на почесывание головы, возможно, не используя правильные ключевые слова.
Вы хотите написать это, используя системные вызовы низкого уровня или можете использовать библиотеки? Один из вариантов - использовать [libexpect] (http://docs.activestate.com/activetcl/8.5/expect/libexpect.3.html) –
@MarkPlotnick Это персональный проект, поэтому все, что облегчает это, - это путь , – CircuitGuy
@MarkPlotnick На самом деле да, это работает очень хорошо! Я переключился на использование вызова exp_popen() из tcl8.6. Это открывает процесс и возвращает к нему дескриптор файла, который я могу читать/писать, как и любой другой файл. – CircuitGuy