Если вы используете Unix-подобную операционную систему, могу ли я предложить pipe ? Измените вашу первую программу для записи в стандартный вывод (вместо открытия файла и передачи ссылок, которые ofstream
вокруг, передайте std::cout
). Измените вашу вторую программу, чтобы читать со стандартного ввода (то же самое, но замените ваши ссылки ifstream
на std::cin
).
Тогда вместо
prog1 -o some-tmp-file.txt
prog2 -i some-tmp-file.txt
сделать это:
prog1 | prog2
<ч />
РЕДАКТИРОВАТЬ : Если ваши существующие программы основаны на <cstdio>
вместо <iostream>
, применяется тот же принцип. Используйте stdout
вместо существующего FILE*
в первой программе. Использует stdin
вместо вашего FILE*
во второй программе.
<ч />
EDIT # 2 : Если вы хотите абсолютно не вносить изменений во вторую программу и, возможно, только в минимальные изменения в первой программе, попробуйте использовать именованные каналы .
mkfifo /tmp/some-tmp-file.txt
prog2 -i /tmp/some-temp-file.txt &
prog1 -o /tmp/some-temp-file.txt