首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在我的C源代码中包含命令"wget“?

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

Stack Overflow用户
提问于 2013-03-11 19:53:49
回答 4查看 11.1K关注 0票数 1

我需要运行一个程序来抓取网站,我已经有一个算法和一些代码的一部分。问题是,我不知道如何在源代码中插入wget。我们的学生助手暗示,在wget之前应该使用一些关键字或函数( system,我想是什么,但我不太确定)。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2013-03-11 20:22:02

每当要从C程序运行外壳命令时,都可以使用system("shell command").In命令

代码语言:javascript
运行
复制
system("wget");

注意- wget是一个可执行文件,其位置被添加到path变量中,因此不需要显式指定路径。

--示例--

代码语言:javascript
运行
复制
#include <stdio.h>

#define BUFFLEN 2500

int main()
{

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

}
票数 1
EN

Stack Overflow用户

发布于 2013-03-11 20:07:28

when to not use system (何时不使用system)

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

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

3.)当你想做的事情只需10-20行C代码就能轻松完成时

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

所以,你应该永远不要使用system

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

在现实世界的场景中,我可能只会默认使用不同的语言编写爬虫。web请求和复杂的字符串处理不一定是C的强项,并且使用起来肯定不是很方便:)

票数 3
EN

Stack Overflow用户

发布于 2013-03-11 19:56:30

您可以使用system()命令。

在您的情况下(可能):

代码语言:javascript
运行
复制
system("/bin/wget");

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

代码语言:javascript
运行
复制
execl("/bin/wget", "http://anyadress.com/file");
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15337932

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档