c++ - 使用 libcurl 库与使用 system() 调用 curl

标签 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() 运行以获得快速简单的结果。问题是用这个方法来实现是否可以。

最佳答案

是的,直接使用libcurl会更好。 这就是它存在的目的。

这样,您就可以避免:

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

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

关于c++ - 使用 libcurl 库与使用 system() 调用 curl,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22669642/

相关文章:

linux - 使用 curl 的 bash 脚本在 apache solr 中索引数据

c++ - 从模板参数派生类

c++ - 如何在 C++ 中对 vector 进行切片并分配给自身?

c++ - CUDA图像处理错误

php - 使用 PHP 和 CURL 发布多维数组

php - Watson 概念扩展服务

c++ - setField() 中的类更改未保留

c++ - 使用字符串作为指向其第一个字符的指针

python - 如何使用 PycURL 保持非事件连接打开?

c - libcurl:如何使用原始文件名下载 url? (相当于 "-O/--remote-name")