使用libcurl库与使用system()调用curl

时间:2014-03-26 18:13:39

标签: c++ curl

我希望我的程序从我提供的链接下载一些音频文件并保存。

我知道可以使用curl在命令行中轻松完成此操作(例如:curl -A "Mozilla" "www.example.com" > hello.mp3

我看到system()用于运行curl的示例(即它看起来像system(curl -A "Mozilla" "www.example.com" > hello.mp3)。虽然这是一个简单的解决方案,但对我来说似乎很糟糕。

使用匹配库(在本例中为libcurl)编写等效代码会更好吗?

你们有什么想法?

P.S - 从某种意义上说,这是一个普遍的问题。我的意思是,有许多命令行程序可以由system()运行,以获得快速简便的结果。问题是,使用这种方法是否可以实现它。

1 个答案:

答案 0 :(得分:2)

是的,最好直接使用libcurl这就是它的存在。

这样,你就避免:

  • 系统调用的费用
  • 产生新流程的成本
  • 系统调用中潜在的与安全相关的错误

从shell调用curl基本上只是无缘无故地生成一个新shell和新进程,然后继续在该进程中使用libcurl。切掉中间人。