如何使用execl替代系统
How to use execl as replacement for system
int main(void)
{
execl("echo", "test");
return 0;
}
我想用 execl
执行命令回显测试
为什么 ?因为我不能使用 system()
我有一些原因
怎么了?
execl
函数不会像 shell 那样在您的 PATH 上查找命令,因此您需要提供 echo
的完整路径(或者提供相对路径从你当前的工作目录,我想)。此外,args 列表中的第一个 arg 应该是可执行文件的文件名,最后一个 arg 应该是 NULL
以便 execl 可以计算出您要传递多少个 args。
这对我有用:
#include <unistd.h>
int main(void)
{
execl("/bin/echo", "/bin/echo", "test", NULL);
return 0;
}
您可以 运行 which echo
找出 echo
在您系统上的位置;它可能与我的不同,您必须编辑代码。
int main(void)
{
execl("echo", "test");
return 0;
}
我想用 execl
执行命令回显测试
为什么 ?因为我不能使用 system()
我有一些原因
怎么了?
execl
函数不会像 shell 那样在您的 PATH 上查找命令,因此您需要提供 echo
的完整路径(或者提供相对路径从你当前的工作目录,我想)。此外,args 列表中的第一个 arg 应该是可执行文件的文件名,最后一个 arg 应该是 NULL
以便 execl 可以计算出您要传递多少个 args。
这对我有用:
#include <unistd.h>
int main(void)
{
execl("/bin/echo", "/bin/echo", "test", NULL);
return 0;
}
您可以 运行 which echo
找出 echo
在您系统上的位置;它可能与我的不同,您必须编辑代码。