Мне нужно взаимодействовать с некоторыми исполняемыми файлами, которые ожидают передачи имен файлов для ввода или вывода:
./helper in.txt out.txt
Каков стандартный (и предпочтительно кросс-платформенный) способ сделать это?
Я мог бы создать много временных файлов в каталоге /tmp
, но я обеспокоен тем, что создание тонны файлов может вызвать некоторые проблемы.Кроме того, я хочу иметь возможность установить свою программу и не беспокоиться о разрешениях позже.
Я мог бы просто быть специфичным для Unix и попытаться найти решение с использованием каналов и т. Д. Но потом я неНе думаю, что я смог бы найти решение с хорошими, безымянными каналами.
Моей альтернативой этому будет передача данных в stdin (все исполняемые файлы, которые мне нужны, также принимают его таким образом) и получитьрезультаты от stdout.Однако выходные данные, которые они дают в stdout, различны, и мне нужно было бы написать множество адаптеров вручную, чтобы сделать это унифицированным (выходные данные через файлы соответствуют одному и тому же стандарту).Мне не нравится, как это заблокировало бы мою программу в нескольких форматах.