RodYang

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

摘要: libcurl,在HLS流媒体播放终端上提供HTTP下载的相关接口。具体的使用方式可以参见http://curl.haxx.se/libcurl/c/libcurl-tutorial.html,或博客http://www.cppblog.com/tx7do/archive/2012/02/19/166011.html。 代码:[cpp]view plaincopym_pCurl=curl_easy_init();if(m_pCurl==NULL)break;curl_easy_reset(m_pCurl);curl_easy_setopt(m_pCurl,CURLOPT_URL,url.c_s 阅读全文
posted @ 2013-11-01 15:53 RodYang 阅读(1959) 评论(0) 推荐(0) 编辑

摘要: 系统编程中一个重要的方面就是有效地处理与内存相关的问题。你的工作越接近系统,你就需要面对越多的内存问题。有时这些问题非常琐碎,而更多时候它会演变成一个调试内存问题的恶梦。所以,在实践中会用到很多工具来调试内存问题。在本文中,我们将讨论最流行的开源内存管理框架 VALGRIND。摘自 Valgrind.org:Valgrind是用于构建动态分析工具的探测框架。它包括一个工具集,每个工具执行某种类型的调试、分析或类似的任务,以帮助完善你的程序。Valgrind的架构是模块化的,所以可以容易地创建新的工具而又不会扰乱现有的结构。许多有用的工具被作为标准而提供。Memcheck是一个内存错误检测器。它 阅读全文
posted @ 2013-10-27 14:21 RodYang 阅读(449) 评论(0) 推荐(0) 编辑

摘要: 用C/C++开发其中最令人头疼的一个问题就是内存管理,有时候为了查找一个内存泄漏或者一个内存访问越界,需要要花上好几天时间,如果有一款工具能够帮助我们做这件事情就好了,valgrind正好就是这样的一款工具。Valgrind是一款基于模拟linux下的程序调试器和剖析器的软件套件,可以运行于x86, amd64和ppc32架构上。valgrind包含一个核心,它提供一个虚拟的CPU运行程序,还有一系列的工具,它们完成调试,剖析和一些类似的任务。valgrind是高度模块化的,所以开发人员或者用户可以给它添加新的工具而不会损坏己有的结构。valgrind的官方网址是:http://valgrin 阅读全文
posted @ 2013-10-26 21:24 RodYang 阅读(412) 评论(0) 推荐(0) 编辑

2013年12月14日

摘要: linux提供了daemon函数用于创建守护进程,实现原理如下:#include int daemon(int nochdir, int noclose);1.daemon()函数主要用于希望脱离控制台,以守护进程形式在后台运行的程序。2.当nochdir为0时,daemon将更改进城的根目录为root(“/”)。3.当noclose为0是,daemon将进城的STDIN, STDOUT, STDERR都重定向到/dev/null。daemon的实现大致如下:int daemon( int nochdir, int noclose ){ pid_t pid; if ( !nochdir &am 阅读全文
posted @ 2013-12-14 19:13 RodYang 阅读(859) 评论(0) 推荐(0) 编辑

2013年11月22日

摘要: 【fstatfs/statfs系统调用】 功能描述: 查询文件系统相关的信息。 用法: #include /* 或者 */int statfs(const char *path, struct statfs *buf);int fstatfs(int fd, struct statfs *buf); 参数: path: 位于需要查询信息的文件系统的文件路径名。 fd: 位于需要查询信息的文件系统的文件描述词。buf:以下结构体的指针变量,用于储存文件系统相关的信息struct statfs { long f_type; /* 文件系统类型 */ long f_bsize; /* 经过优化... 阅读全文
posted @ 2013-11-22 02:58 RodYang 阅读(668) 评论(0) 推荐(0) 编辑

2013年11月19日

摘要: 本节主要介绍curl_easy_setopt中跟http相关的参数。注意本节的阐述都是以libcurl作为主体,其它为客体来阐述的。1.CURLOPT_URL设置访问URL2. CURLOPT_WRITEFUNCTION,CURLOPT_WRITEDATA回调函数原型为:size_t function( void *ptr, size_t size, size_t nmemb, void *stream);函数将在libcurl接收到数据后被调用,因此函数多做数据保存的功能,如处理下载文件。CURLOPT_WRITEDATA用于表明CURLOPT_WRITEFUNCTION函数中的stream 阅读全文
posted @ 2013-11-19 18:21 RodYang 阅读(4851) 评论(0) 推荐(0) 编辑

摘要: Author:李强(李祥祥)Date:2012-12-1517:26LIBCURL官方网站都没有说清楚道明白进度函数的参数的作用,这点我感觉文档很片面,经总结如下:size_tCUploader::ProgressCallBackFun(void*buffer,doubledltotal,doubledlnow,doubleultotal,doubleulnow)1.当下载时候使用了前面两个参数dltotal,dlnow表示要下载的总的字节大小(如何是续传,dltotal不包含其大小,仅表示需要下载的大小),dlnow表示现在已经下载的字节数。2.当为读取表示上传进度时候后面两个参数就起作用了 阅读全文
posted @ 2013-11-19 18:20 RodYang 阅读(2272) 评论(0) 推荐(0) 编辑

2013年10月26日

摘要: 在linux下些C语言程序,最大的问题就是没有一个好的编程IDE,当然想kdevelop等工具都相当的强大,但我还是习惯使用kdevelop工具,由于没有一个习惯的编程IDE,内存检测也就成了在linux下编写程序的一个大问题。 是不是说没有一种内存检查工具能够在linux使用呢,也不是,像valgrind工具还是相当不错的。他的下载地址是http://valgrind.org/downloads/current.html#current下载一个valgrind 3.2.3 (tar.bz2) 工具,按照里面的README提示,安装后就可以使用这个工具来检测内存泄露和内存越界等。这是一个没有. 阅读全文
posted @ 2013-10-26 20:52 RodYang 阅读(626) 评论(0) 推荐(0) 编辑

2013年10月21日

摘要: C++的XML编程经验――LIBXML2库使用指南写这篇文章的原因有如下几点:1)C++标准库中没有操作XML的方法,用C++操作XML文件必须熟悉一种函数库,LIBXML2是其中一种很优秀的XML库,而且它同时支持多种编程语言;2)LIBXML2库的Tutorial写得不太好,尤其是编码转换的部分,不适用于中文编码的转换;3)网上的大多数关于Libxml2的介绍仅仅是翻译了自带的资料,没有详细介绍如何在windows平台下进行编程,更很少提到如何解决中文问题。基于以上几点原因,决定写一个在Windows平台下,使用C/C++语言,应用LibXml2库来进行xml文档操作,同时使用ICONV库 阅读全文
posted @ 2013-10-21 04:56 RodYang 阅读(407) 评论(0) 推荐(0) 编辑

2013年10月16日

摘要: 这里主要讲述libxml2在linux下的使用。(以下内容除了linux下的安装步骤是自己写的,其余均出自http://www.blogjava.net/wxb_nudt/archive/2007/11/28/161340.html,由于该篇文章讲解的非常详细,我也没必要重写一遍了。如果该篇文章早出些时候,早期开发我也不会走很多弯路了。虽然在该篇文章出现之前我已经对libxml2较熟悉了并开发完毕,但为了备忘,现在将该篇文章作为收藏之用。在此再次感谢这篇文章的大侠为大家整理了这篇文章^_^)1. 下载与安装LIBXML2Libxml2是一个C语言的XML程序库,可以简单方便的提供对XML文档的 阅读全文
posted @ 2013-10-16 17:08 RodYang 阅读(575) 评论(0) 推荐(0) 编辑