抓取另一个正在运行的进程的输入/输出[C,perl]

时间:2013-01-31 23:38:00

标签: c linux perl

我想知道是否可以从我的C应用程序中启动Linux应用程序,并能够读取数据并将数据输入到已启动的程序中。我应该考虑哪些功能才能做到这一点。我知道我可以使用popen()打开应用程序,并且可以在C中获取详细信息,但我希望能够在很长一段时间内输入/输出到此应用程序(我想与之交互的应用程序请求详细信息并且在任务完成之前是/否答案。我想制作一个连接到IRC等聊天平台的前端应用程序,并能够从IRC或我使用的任何其他协议控制远程应用程序。如果可能的话,我想要用Perl或C编写的任何示例。感谢任何细节或链接到我可以使用的其他类似项目。

1 个答案:

答案 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>;