如何在linux中使用c ++程序从远程url获取数据?

时间:2013-04-24 13:56:18

标签: c++ popen

我希望通过我的C ++程序读取Web上托管的XML文件。我正在研究LINUX。 我正在使用popen阅读。

FILE* remote = popen("curl 'my_url_to_xml', "r")
fread(buf, 1024, 1, remote);

它的工作原理并在网址中提供了内容,但是即使我没有打印任何东西,它也会将这个额外的事情转移到屏幕上。此外,整个操作需要约3000毫秒。这对我的用例来说太过分了。

% Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                             Dload  Upload   Total   Spent    Left  Speed
0    71    0    71    0     0    309      0 --:--:-- --:--:-- --:--:--     0

有什么方法可以解决这个或替代popen的问题?我希望避免像libcurl这样的第三方库。任何原生解决方案?

编辑 - 好的我接受甚至非原生解决方案都被接受。我的第一个担忧是popen。如果可以解决这个倾销问题,我会选择popen本身。

2 个答案:

答案 0 :(得分:2)

使用静音开关拨打curl-s--silent

答案 1 :(得分:1)

  

我希望避免像libcurl这样的第三方库。任何原生解决方案?

没有。 C ++不是一种“Web语言”,它对内置的XML或HTTP没有任何支持。你需要使用像libcurl这样的库。或者另一种编程语言。或者重新实现其中一个。

说真的,只需使用libcurl或类似功能就可以了。甚至更好,使用Python。 :)