我想知道是否可以从我的C应用程序中启动Linux应用程序,并能够读取数据并将数据输入到已启动的程序中。我应该考虑哪些功能才能做到这一点。我知道我可以使用popen()
打开应用程序,并且可以在C中获取详细信息,但我希望能够在很长一段时间内输入/输出到此应用程序(我想与之交互的应用程序请求详细信息并且在任务完成之前是/否答案。我想制作一个连接到IRC等聊天平台的前端应用程序,并能够从IRC或我使用的任何其他协议控制远程应用程序。如果可能的话,我想要用Perl或C编写的任何示例。感谢任何细节或链接到我可以使用的其他类似项目。
答案 0 :(得分:0)
我建议使用IPC::Open2
中的Bidirectional Communication with Another Process
中描述的Perl解决方案perldoc perlipc
。概要看起来像这样
use IPC::Open2;
my($chld_out, $chld_in);
my $pid = open2($chld_out, $chld_in, 'some cmd and args');
之后你可以
print $child_in "Input to child process\n";
my $response = <$chld_out>;