【发布时间】:2011-11-21 10:42:45
【问题描述】:
我一直在我的 C++ 程序中使用 linux exec() 函数,我正在尝试执行脚本(perl、python、php、...)。
从 bash 我可以执行例如:sh -c "perl /home/ignition/test.pl"
但是
execl("/bin/sh", "sh", "-c", "\"perl /home/ignition/test.pl\"", NULL);
不起作用。这确实有效:
execl("/bin/sh", "sh", "-c", "/home/ignition/test.pl", NULL);
但这依赖于 perl 解释器的正确路径被指定为脚本的第一行,这不是很通用,例如这不适用于 php 脚本。我想使用 sh -c 方法,以便自动解析解释器的路径...
谁能指出我做错了什么?
【问题讨论】:
-
你试过没有多余的引号吗?
-
我以为我已经尝试过了,但我想我没有。现在可以用了,谢谢。