0

我一直在向现有项目添加一个插件,并且该插件与 perl 脚本捆绑在一起。我正在尝试将我的 C 程序添加到 perl 脚本中以制作输出文件,但输出是垃圾或丢失。

我的可执行文件被调用Interpolate,当它与 perl 脚本在同一个文件夹中时,它工作得很好

./Interpolate inv.tracking_log

是命令的运行方式。它应该生成一个名为 的中间tmp.log文件和一个名为out.txt. 当我在目录中运行它时,它就很好,两个文件都应该是这样。

然后我在 perl 脚本中添加了一个系统调用(我几乎(如果)知道 perl):

print("./Interpolate $inVideoFile");      //prints like the command (just a test)
my $interCall = system("./Interpolate $inVideoFile");

从 perl 脚本中运行它时,该tmp.log文件大多是垃圾,并且out.txt完全丢失了。我确实意识到 out 很可能会丢失,因为它依赖于tmp.log文件。是否有我在某处缺少的 perl 'gotchya'?

4

1 回答 1

2
system("./Interpolate $inVideoFile");

应该

system("./Interpolate", $inVideoFile);

如果修复后仍有问题,$inVideoFile不包含应有的内容,或者 C 程序中存在错误。(调用的返回值是system多少?)

于 2012-06-13T16:49:03.153 回答