Я не нашел удовлетворительного ответа, поэтому извините, если на этот вопрос уже был дан ответ.
По сути, я хотел бы иметь возможность вызывать программу и вводить некоторые данные в ее стандартный ввод и читать его стандартный вывод из программы C.
Я хотел бы подражать этому:
данные кота.txt | программа
где фиксируется вывод программы, а данные записываются в стандартный ввод указанной программы.
Это немного похоже на этот вопрос, но на C вместо python, и мне не нужно, чтобы подпроцесс жил вечно, просто выполнялся с входными данными, выплевывал выходные данные и умирал.
Многократно записывайте в STDIN и читайте STDOUT подпроцесса без его закрытия
popen()
/exec…()
и использования канала для связи. В качестве примечания: ваш вопрос звучит немного, если у вас есть данные заранее и вы хотите получить данные после завершения процесса. В таком случае просто запишите входные данные в файл, запустите подпроцесс из этого файла и позвольте ему записать в файл и, наконец, прочитать файл после завершения процесса. Может быть, это проще в вашем сценарии. - person Amin Negm-Awad   schedule 03.08.2016fork()
, а неpopen()
. - person Amin Negm-Awad   schedule 03.08.2016