gpt4 book ai didi

c++ - 使用 exec() 执行 perl/python/... 脚本

转载 作者:太空狗 更新时间:2023-10-29 12:07:06 36 4
gpt4 key购买 nike

我一直在我的 C++ 程序中使用 linux exec() 函数,我正在尝试执行脚本(perl、python、php 等)。

例如,我可以从 bash 执行:sh -c "p​​erl/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 方法以便自动解析解释器的路径...

谁能指出我做错了什么?

最佳答案

在第一个示例中,您尝试执行名为 "perl 的程序,并提供文件 /home/ignition/test.pl" 作为第一个参数。当您直接使用 shell 时,它会在启动程序之前删除引号。

试试这个:execl("/bin/sh", "sh", "-c", "perl/home/ignition/test.pl", NULL);

关于c++ - 使用 exec() 执行 perl/python/... 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7491717/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com