如何在我的C源代码中包含命令“wget”?

时间:2013-03-11 11:53:49

标签: c web-crawler wget

我需要运行一个抓取网站的程序,我已经有了算法和代码的某些部分。问题是,我不知道如何将wget插入到我的源代码中。我们的学生助理暗示在wget之前使用某种关键字或功能(system,我认为或其他什么,但我不太确定)。

4 个答案:

答案 0 :(得分:2)

您可以使用system()命令。

在你的情况下(可能):

system("/bin/wget");

但是如果你想真的用wget来调用参数,那么你应该使用execl()

execl("/bin/wget", "http://anyadress.com/file");

答案 1 :(得分:2)

何时使用system

1。)当您想将程序分发到不同的环境时,您通过系统调用的程序不可用

2。)在安全相关的环境中,你必须确保你调用的程序真的是你想要的程序

3。)当您想要做的事情可以在10到20行C代码中轻松完成

4。)在性能关键型应用程序中

所以,你应该几乎不使用system

相反,为了完成同样的事情,你可以使用libcurl,就像David建议的那样(他的答案似乎已经消失......),或者做一些套接字编程(毕竟它是C语言)。

在真实场景中,我可能只是默认使用其他语言编写爬虫。 Web请求和复杂的字符串处理不一定是C的强项,并且绝大多数使用起来不太方便:)

答案 2 :(得分:1)

每当您想要从C程序运行shell命令时,都使用system("shell command")。在您的情况下

system("wget");

注意 - wget是一个可执行文件,其位置被添加到路径变量中,因此无需明确指定路径。

- 示例 -

#include <stdio.h>

#define BUFFLEN 2500

int main()
{

char web_address[BUFFLEN] = "www.google.com"; 
system("wget 'web_address' "); 
return 0;

}

答案 3 :(得分:0)

system命令用于执行shell命令。 man system