2013-04-24 36 views
1

我希望通过我的C++程序阅读在Web上托管的XML文件。我正在LINUX上工作。 我目前正在使用popen来阅读。如何使用Linux中的c + +程序从远程URL获取数据?

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

它的工作原理,并为我提供了URL的内容,但随后有倾倒,即使我没有任何打印屏幕这个额外的事情。整个操作也需要约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。如果这个倾销问题能够得到解决,我会自己去做。

回答

2

呼叫curl与静音开关:-s--silent

+0

感谢。你能给我一个想法如何将它与popen包含在一起吗? – Abhishek 2013-04-24 17:17:15

+0

@Abhishek你只需编辑代码中显示的'curl'调用并添加开关:'popen(“curl --silent'my_url_to_xml',”r“)' – David 2013-04-27 04:14:34

1

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

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

说真的,只要使用libcurl或类似的工具就可以完成。或者甚至更好,使用Python。 :)