Я разрабатываю программу, которую планирую реализовать на C, и у меня есть вопрос о том, как лучше (с точки зрения производительности) вызывать внешние программы.Пользователь предоставит моей программе имя файла, а затем моя программа запустит другую программу с этим файлом в качестве входных данных.Моя программа затем будет обрабатывать вывод другой программы.
Мой типичный подход - перенаправить вывод другой программы в файл и затем сделать так, чтобы моя программа прочитала этот файл, когда это будет сделано.Однако я понимаю, что операции ввода-вывода довольно дороги, и я хотел бы сделать эту программу максимально эффективной.
Я немного посмотрел и нашел команду popen
для запуска системных команд изахватить вывод.Как производительность этого подхода сравнивается с эффективностью подхода, который я только что описал?popen
просто записывает вывод внешней программы во временный файл или сохраняет вывод программы в памяти?
В качестве альтернативы, есть ли другой способ сделать это, который даст лучшую производительность?