Передача ввода в уже запущенную программу cpp?

0

включают

Предположим, что это код, который я запускаю:

int main(int argc, char **argv) {

bool running = true;
string lineInput;
while (running)
{
    while (cin >> lineInput)
    {
        cout << lineInput;
    }
}

return 0;

}

То, что я хотел бы иметь, это то, что я могу вызвать запуск программы с терминала, набрав "./myProgram". Эта часть довольно проста. Часть, которую я не знаю, как это сделать, это сделать так, чтобы я мог в более поздний момент времени использовать echo "some text to echo" | myProgram echo "some text to echo" | myProgram и иметь возможность иметь мою программу, затем распечатать этот текст обратно на терминал.

Сейчас я могу только заставить его работать, если я набираю:

echo "blah blah blah" |./myProgram

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

  • 0
    вы на самом деле ответили на свой вопрос; вам нужен канал, поэтому используйте mkfifo и запускайте его в фоновом режиме - свяжите вашу программу с ним, а затем предоставьте свой ввод для канала, созданного с помощью mkfifo ---->, на который уже ответил csreap3r
Теги:
pipe

2 ответа

1
Лучший ответ

Я думаю, вы могли бы сделать это с именованным каналом.

mkfifo mypipe
./myProgram < mypipe &
cat file1.txt file2.txt file3.txt > mypipe
  • 0
    Спасибо! Именно то, что мне было нужно.
  • 0
    Нет проблем. Рад, что смог помочь!
Показать ещё 6 комментариев
0

Вы можете использовать mkfifo и просто читать из него в программе, как из обычного файла.

Там также

  • pipe или socket_pair (двунаправленный)
  • 0
    pipe и socketpair здесь не помогут.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню