所以我试图在一个单独的子进程中执行 wget,我用 fork 复制如下:
int child;
pid_t child = fork();
if ( child == 0 ) { // no errors
bool done = false; // set to false
while (!done) { // while not true do
execl("wget", "someurl", NULL);
done = true; // since dl finished
}
cout << "DL Finished\n"; // to see if child was successful
}
else if ( child != 0 ) { // errors
您可以在此代码中指出任何明显的错误吗?如果重要的话,这是我在 main 中调用的 void 函数内部发生的事情是它没有下载并且它显示“DL Finished”,但不执行wget -然后终端接管。
这是在 Ubuntu 12.04.2 LTS 上执行的。我以前在同一个 void 函数中使用child执行正常工作的“ls”,即我告诉它 ls 的整个路径(/bin/ls)。我读到不提供完整路径会使其搜索命令,这就是我想要的。