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