首页 > 新文章
  • 在Ubuntu 14.04 64bit上编译安装Crtmpserver trunk svn 811版本! is a project mainly written in , based on the .这里仅在 在Ubuntu 12.04 64bit上搭建Crtmpserver视频点播服务 基础上补充一下在Ubuntu 14.04上编译安装Crtmpserver的方法,以作备忘。因为Ubuntu 14.04相较于12.04在第三方库上面有很大改变,采用原有方法将无法编译成功。 我在安装 sudo apt-get insta...

  • Ubuntu 14.04 64bit上升级Intel官方集显更新驱动程序 is a project mainly written in , based on the .Intel官网上发出了最新版的Linux版本的集显驱动更新程序 但是,使用Ubuntu 14.04 64bit上的软件中心无法自动去更新该集显驱动更新程序,说是不安装未被确认安全的程序。下面是我采用的另一种解决方法,特记载如下。 注意这里一定要区分集显驱动更新程序和集显驱动更新,这是完全不同的两回事。前者是一种自动更新集显驱...

  • 使用valgrind检测ATS插件中的内存泄露 is a project mainly written in , based on the .一.内存错误出现的场景 这几天在重构ATS插件代码的过程中遇到了烦人的内存泄露问题, 周五周六连续两天通过走查代码的方法,未能看出明显的导致内存错误的代码, 同时也觉得C和C++混合编程得到一个动态库, 在一个.cpp主文件中,即用new又用malloc来动态分配内存, 可能会导致内存错误.后来网上调研和查资料发现, new和mal...

  • Vim中删除dos格式文件中的^M号的方法以及深度规整文件格式 is a project mainly written in , based on the .在windows平台上开发时, 我们编辑的文件多半是dos格式, 当我们将它们采用xftp或是secureCRT等ssh软件传输到Linux的vim环境下面时, 通常会出现如下令人惨不忍睹的画面: 为了得到干净清爽的unix格式的utf8编码的文件,我们可以先在vim中去掉^M符号: %s/^M//g 这里,^M要用Ctr...

  • Epoll ET模式服务器和客户端源码例子 is a project mainly written in , based on the .使用ET模型的时候,一定要注意,每次收到有效通知,然后读取数据的时候,务必每次读取干净(读到出错为止)。当再次调用check(sockfd)的时候才能正确返回。...

  • RedisCommand接口的用法--利用hiredis库获取MGET命令的结果的坑! is a project mainly written in , based on the .工作中遇到如下业务场景: 我需要利用大批量的key去借助MGET命令来获取redis服务器上的记录,但是我却始终获取不到。当然我可以使用GET去一条一条地获取,但是这样一来,效率不高。所以最好的方式是,大批量一次性获取这样的记录。 我有问题的这段代码是这样的: 但是在构造MGET命令时,我犯了一个很弱智的错误,就是redi...

  • 在Ubuntu 14.04 64bit上进行md5加密编程 is a project mainly written in , based on the .这里要说明如下几点:...

  • 编写Makefile中遇到的各种奇葩问题汇总 is a project mainly written in , based on the .这篇博文中主要收集我开发过程中遇到的Makefile相关的问题, 以免自己日后再犯类似的错误. 今天就遇到一个很弱的问题, Makefile显示如下错误: 出现该问题是因为我写错了标注处的代码: $和()之间有空格了, 这里必须是$(), 不能有空格的...

  • 使用C++ stringstream来进行数据类型转换 is a project mainly written in , based on the .在C++中如何进行各种数据类型的转换呢?比如整数转字符串, 字符串转换为整数? 在ANSI C中我们通常采用atoi或是itoa函数, 或者使用scannf, snprintf等方法.在C++中其实也有它独特的方法.下面给出相应的代码仅供参考: #include #include #inc...

  • 使用C++ ostringstream来格式化字符串输出 is a project mainly written in , based on the .在Linux C中,我们通常使用snprintf来格式化字符串输出,但是有一个问题,就是可能会频繁申请大的缓冲区,并且无法实现字符串的动态增加,比如你定义的字符缓存为100个字节,如果你格式化以后的内容超出了100个字节,那边后面的内容就无法看见. 所以一般来讲都为定义一个足够的字符缓冲,但这样的效率是很差的. 下面使用C++的ost...

  • Libcurl远程获取文件大小源码 is a project mainly written in , based on the .这是一个简单的获取远程文件大小的源码,我们可以改写为大批量异步的形式. #include #include size_t get_size_struct(void* ptr, size_t size, size_t nmemb, void* data){return (size_t)...

  • Printf格式化输出几点注记 is a project mainly written in , based on the .搞了很多年c/c++,有很多细小的东西,曾经不止一次遇到,可是一直都是放在零散的地方,要用的时候怎么也找不到,今天,我痛下决心,改掉不良习惯,把这些经验或是tips记录在这里,便于日后查找。 1.在统计网络下载信息时,如何表达文件大小? 下面是输出结果 2.打印size_t类型数据的长度,使用%lu。 下面是一个使...

  • Libcurl下载限速编程调研 is a project mainly written in , based on the .目前的业务需求是, 要求下载过程中, 能够恰当控制下载速度? 如何实现? 我想到了libcurl中提供的下载限速选项.现在探讨如下. 我找到Ubuntu 14.04.01的iso大文件, 使用libcurl来限速下载, 参见下图: 下面是相关的源码 //g++ -g curl_speed.cpp -o curl_spe...

  • Ncurse界面编程多线程示例 is a project mainly written in , based on the .[3].http://bbs.chinaunix.net/thread-162593-1-1.html...

  • Libcurl 编程进度条和range请求源码示例 is a project mainly written in , based on the .在下面的源码中,我将展示如何使用libcurl提供的进度条功能,以及如何发送range请求, 同时提供了限速功能。 源码如下: //g++ -g curl_range.cpp -o curl_range -lcurl -lm // #include #include #include <...

  • Libcurl+ncurses 分段range批量下载和进度条显示源码实例 is a project mainly written in , based on the .这个例子来自参考文献[1], 那里有很多小bug,我都做了修改,在这里不一一说明了。ncurse界面编程比较容易入门,就是几个接口,网上资料很多,这里不详述了。 //gcc -g mget.c -o mget -lcurl -lncurses -lm // #include #include

  • Ubuntu 14.04 64bit上curl-7.37源码包中的sample 源码示例研究 is a project mainly written in , based on the .curl是Linux平台上(本人不考虑其他平台)很好用的一个工具软件,它有命令行,有C接口API,更常见的编程用途是php和python版本。如果在C/C++平台上使用curl,可以直接去官网...

  • Vim中的转义符 is a project mainly written in , based on the .当我们在Vim的命令行模式中,进行查找替换时不可避免地涉及到特殊字符的转义问题,记录如下: 1.我想将网上copy的一段代码中的“/n”替换为“ ”时,注意/应该转为/,应该转换为\n,于是替换表达式如下: :%s//n/\n/gc...

  • Libcurl使用多线程下载大文件源码示例! is a project mainly written in , based on the .使用libcurl多线程下载大文件的基本思想: 首选打开文件,将文件等分为指定的片段,使用http range下载,一个线程下载一个片段,当线程下载片段时,它们将数据写到打开文件的指定位置,类似BT文件下载的方式(这样片段下载完成后不用再合并),当所有的子线程下载完成后,这个大文件也就随之下载完成了。 下面是相关源码: //g...

  • 简单C++线程池包装类源码示例 is a project mainly written in , based on the .这里给出一个简单的C++线程池包装类,该类具有的特点是: 1.线程池大小是固定的, 一创建后,就不具有伸缩特性. 一般建议是 CPU核心数的2倍或1倍. 2.简单但是很可靠. 3.资源占用极低. 在开启100个线程时, 4核CPU的占用率只有20%不到, 30个线程时, 占用7%以下.实践证明, 使用信号量和互斥锁进行多线程的同...