如何在linux中使用exec命令使用wget命令?

如何在linux中使用exec命令使用wget命令?,c,linux,exec,wget,C,Linux,Exec,Wget,如何在linux中的C语言程序中使用exec执行下面提到的命令 wget-p./Folderhttp://www.google.comexecl(“/usr/bin/wget”、“-p”、“/Folder”、”http://www.google.com“,空) 除非您必须使用exec,否则我建议您使用libc中的system,因为它更具可移植性(以防您决定移植它)。我找到了解决问题的方法,并且在我的案例中起到了作用 char*args[]={/usr/bin/wget”、“-p”、“/Folde

如何在linux中的C语言程序中使用exec执行下面提到的命令

wget-p./Folderhttp://www.google.com
execl(“/usr/bin/wget”、“-p”、“/Folder”、”http://www.google.com“,空)


除非您必须使用exec,否则我建议您使用libc中的
system
,因为它更具可移植性(以防您决定移植它)。

我找到了解决问题的方法,并且在我的案例中起到了作用

char*args[]={/usr/bin/wget”、“-p”、“/Folder”、”http://www.google.com“,(char*)0}

execv(“/usr/bin/wget”,args)

另一个解决方案是直接使用系统功能运行命令,如:


系统(wget-p./Folderhttp://www.google.com)

我在运行给定命令时收到此警告,并且它没有下载给定文件夹中的页面
code.c:在函数“main”中:code.c:47:8:警告:函数调用[-Wformat]中缺少sentinel
噢,在参数列表的末尾需要一个NULL。我将进行编辑以反映这一点。现在我已运行此命令,但它正在当前工作目录中下载页面。但是我想下载文件夹中的页面<代码>execl(“/usr/bin/wget”、“-P”、“/Folder”、”http://www.google.com“,空)使用system()时要非常小心,因为它可能是一个安全漏洞,因为它使用了底层的shell扩展。@caskey如果您能确定它为什么下载当前工作目录中的页面而不是文件夹中的页面<代码>execl(“/usr/bin/wget”、“-P”、“/Folder”、”http://www.google.com“,空)我会考虑使用类似的客户端库。