C 如何用Perl运行外部程序?

C 如何用Perl运行外部程序?,c,perl,C,Perl,我想用Perl脚本执行一个C程序。无论什么样的输入是手动提供给C可执行文件的,都应该由我的程序提供 让我们看一个简单的程序,它接受两个数字的输入并打印其总和。 这些值应该由Perl脚本提供 请指导我完成一些教程,我可以在其中实现相同的功能。使用以下功能: system "my-c-program 1 2"; 如果要在perl脚本中捕获C程序的输出,请使用backticks或: 运行my-c-program 1 2并将标准输出捕获到新的$output变量中。您可能在使用backticks引用机制

我想用Perl脚本执行一个C程序。无论什么样的输入是手动提供给C可执行文件的,都应该由我的程序提供

让我们看一个简单的程序,它接受两个数字的输入并打印其总和。 这些值应该由Perl脚本提供

请指导我完成一些教程,我可以在其中实现相同的功能。

使用以下功能:

system "my-c-program 1 2";
如果要在perl脚本中捕获C程序的输出,请使用backticks或:


运行my-c-program 1 2并将标准输出捕获到新的$output变量中。

您可能在使用backticks引用机制,该机制执行外部程序并以字符串形式返回其标准输出。 e、 g

将在unix中打印类似Wed Oct 7 12:50:33 CEST 2009的内容。然而,出于安全目的,必须对参数进行shell转义,这在某些情况下可能会很棘手-在大多数情况下,污染是一种方法

我建议所有初学者直接使用“system”命令,直到他们意识到backticks的安全含义——如果是这种情况,您可能应该听取@Dave Hinton的建议


对于高级魔术,您应该阅读。

好吧,如果您只是在学习如何用Perl运行外部程序,请帮自己一个忙,不要再考虑“`”

``的问题是执行一个包含参数的字符串,因此必须对其进行解析。当用户提供参数时,这可能会导致问题

如果你有100%确定你对参数和命令名有完全的控制,你可以使用``,但是对于任何其他情况——考虑使用.< /P>


它有点复杂,但一个事实是它不需要任何参数解析,这就更好了。此外,您还可以完全控制已执行程序的stdin、stdout和stderr,包括向它们附加回调

我想OP需要调用程序的输出。你需要引导我完成这个过程。。因为我是这方面的新手。。或者分享一些关于it.system和qx/的好教程,做不同的事情。在他们意识到反勾号的安全含义之前,系统命令的直接作用是什么?顺便说一句,系统是一个函数。这意味着初学者在学习shell转义之前应该远离backticks。是的,关于系统你是对的。嗨,先生。。你的回答对我来说也有点有趣。。但这听起来太多余了,因为我不清楚sm术语。。如何通过perl脚本运行简单的C程序。。也就是说,在执行过程中,当C程序需要输入时,perl应该提供该输入。。b/w中的时间延迟…我不明白你的评论??如果可能的话,请再清楚地写一遍。。无论如何,谢谢。
my $output = `my-c-program 1 2`;
$date = `date`
print $date;