0
我尝试从unix中的C++程序调用wget。我想在使用fork之后在子进程中调用它,我需要使用exec而不是system()。我所做的是正确使用exec命令在unix中调用wget
pid_t pID = fork();
if (pID == 0)
{
execl("/bin/wget","wget", "http://google.gr",(char*)0);
}
,并期望有在同一个文件夹中的可执行文件是, 但这种情况不会发生,我应该如何去做正确的HTML文件?
我不会建议完全限定路径 - 并非每个系统上安装的软件都必须具有wget in/bin;有时它可能位于'/ usr/bin','/ usr/local/bin'等等。运行你的软件的用户可能有一个自定义的wget,他们希望在他们的本地PATH中使用它们。只需在第一个参数中用'wget'调用它就会导致搜索PATH,这样就可以在任何地方找到二进制文件。 –
非常感谢,实际上我做错了的是该路径是/ usr/bin/wget,但是您的建议是在第一个参数中使用wget调用它是正确的解决方案,再次感谢 – user985409
我添加了一个描述使用正确错误处理 - 这样做,你的程序会在这种情况下发出“找不到文件”的错误,所以很明显是什么问题 - 并重申上述评论的内容。 –