2014-03-26 25 views
1

我想我的程序从一个链接我给它,并将其保存下载一些音频文件。libcurl库VS使用system()调用卷曲

我知道这是可以使用curl(例如命令行很容易做到:curl -A "Mozilla" "www.example.com" > hello.mp3

我看到那里system()被用来运行例子curl(即它看起来像system(curl -A "Mozilla" "www.example.com" > hello.mp3)尽管这是一个简单的。解决方案似乎对我不好。

难道是更好的做法,使用匹配的库(在这种情况下的libcurl)编写的等价代码?

你们觉得呢?

P.S - 这在某种意义上是一个普遍的问题。我的意思是,有很多命令行程序可以通过system()来运行,以获得快速简单的结果。问题是如果使用这种方法来实现它是可以的。

回答

2

是的,倒不如直接使用libcurl这就是它的存在。

这样,就避免了:

  • 系统调用的成本
  • 在您的系统调用产生一个新的进程
  • 可能发生的安全漏洞的成本

从外壳调用curl将基本上只是产卵无故新的外壳,新工艺,然后继续使用无论如何,这个过程里面都是。剪掉中间人。