Итак, мой вопрос в том, могу ли я каким-то образом отправить данные в свою программу, а затем отправить те же данные и их результат в другую программу без необходимости создавать временный файл (в моем случае ouputdata.txt). Желательно использовать linux pipe / bash.
В настоящее время я делаю следующее:
кот inputdata.txt | ./MyProg> outputdata.txt
кот inputdata.txt outputdata.txt | ./MyProg2





Вариант 1 - исправить MyProg, чтобы записать объединенный вывод из ввода и его собственный вывод. Тогда ты сможешь это сделать.
./MyProg <inputdata.txt | ./MyProg2
Вариант 2. Если вы не можете исправить MyProg для записи и ввода, и вывода, вам необходимо выполнить слияние.
./MyProg <inputdata.txt | cat inputdata.txt - | ./MyProg2
а) это совсем не уродливо, б) первый вариант предполагает именно это.
Вот еще один способ, который можно расширить, чтобы объединить вывод двух программ:
( Prog1; Prog2; Prog3; ... ) | ProgN
По крайней мере, это работает в Bash.
давайте смешаем это вместе, чтобы получить прекрасное блюдо: (Prog1 & Prog2 & Prog3 & ...) | ПрогN: p
LOL, да, это даст интересные результаты :-D
Извините, но это уродливое решение. Просто зафиксируйте MyProg и соедините их трубами.