C/C++
jmppok
这个作者很懒,什么都没留下…
展开
-
printf输出_int64时为0
<br /><br />今天打印的时候,发现打出的值一直是0,因为用int是没有问题的,而我为了阻止溢出问题,将int改成了__int64,但是检查后发现所有的赋值都是正确的。于是一行行进行调试,发现错误竟然是出现在printf上面。<br /> <br />原来的printf语句: printf("f(%d) = %d /n",number,number);<br />可以正确的打印出int型的值。<br />但是对于__int64,进行了不正确的截断,全部显示为0.<br /> <br />可以使用%I原创 2010-07-22 18:12:00 · 1799 阅读 · 0 评论 -
一个参考tornado的高性能c++网络库:libtnet
libtnet是一个用c++编写的高性能网络库,它在设计上面主要参考tornado,为服务端网络编程提供简洁而高效的接口,非常易于使用。Echo Servervoid onConnEvent(const ConnectionPtr_t& conn, ConnEvent event, const void* context){ switch(event) {转载 2013-12-05 10:10:07 · 1131 阅读 · 0 评论 -
NeHe OpenGL系列教程(中英文版附带VC++源码)中英文系列
NeHe OpenGL教程(中英文版附带VC++源码)中英文系列Lesson 01-lesson 02创建一个OpenGL窗口:如何创建三角形和四边形http://ieee.org.cn/dispbbs.asp?boardID=61&ID=53679 Lesson 03-lesson 04添加颜色旋转http://ieee.org.cn/dispbb转载 2013-12-16 10:25:53 · 3137 阅读 · 0 评论 -
C++日志库log4cplus:SocketAppender记录日志到log Server
C++程序在后台运行时,可通过log4cplus记录日志。当C++程序运行在远程服务器上时,我们就需要远程登陆到该服务器才能查看日志。进一步,如果该C++程序一个并行程序或者分布式程序,为了查看程序的运行状态,我们就需要登陆到N台服务器上,tail -f xx.log.这种情形听起来就很令人不爽,而实际上,很多服务端开发者都遇到过或正在遭受这个问题的困扰。原创 2013-12-17 13:58:07 · 7949 阅读 · 3 评论 -
C++开源日志库log4cplus
1.日志的重要性随着计算机技术的进步和发展,计算的重心开始由客户端向服务端转移,出现了诸如面向服务、并行计算、云计算等应用模式,后台服务端开始承担越来越来的工作,运行的应用程序也越来越复杂。而作为后台服务端应用,我们必须通过某种方式对其运行状况进行监控,以便在出现问题时能更好的跟踪和定位。这就需要一个给力的日志系统。可以说日志系统在当前的服务端应用中已成为一个必不可少的重要模块。原创 2013-12-16 18:59:33 · 6664 阅读 · 0 评论 -
Java使用管道实现进程间通讯
Java使用管道Pipe实现进程间通讯。原创 2013-12-23 13:55:51 · 26570 阅读 · 0 评论 -
zlib使用与性能测试
zlib作为最常用的压缩工具,本文对其使用进行简单说明,并进行一个简单的性能测试。原创 2014-01-10 16:59:12 · 5288 阅读 · 0 评论 -
C/C++网络编程总结与ZeroMQ
现在几乎所有C/C++的后台程序都需要进行网络通讯,其实现方法无非有两种:使用系统底层socket或者使用已有的封装好的网络库。本文对两种方式进行总结,并介绍一个轻量级的网络通讯库ZeroMQ。原创 2014-01-15 16:35:35 · 8880 阅读 · 0 评论 -
C/C++大文件/数据网络传输方法总结
在C/C++网络编程中不免会遇到需要传输大数据、大文件的情况,而由于socket本身缓冲区的限制,大概一次只能发送4K左右的数据,所以在传输大数据时客户端就需要进行分包,在目的地重新组包。而实际上已有一些消息/通讯中间件对此进行了封装,提供了直接发送大数据/文件的接口;除此之外,利用共享目录,ftp,ssh等系统命令来实现大文件/数据也不失为一种好的方法。原创 2014-01-16 16:36:46 · 18953 阅读 · 5 评论 -
最好用图像处理库CxImage入门
CxImage是一款免费的、开源的、功能强大的图形处理库。跨平台,支持windows、linux等;支持BMP、GIF、ICO、TGA、JPEG、PCX、PNG、TIFF、MNG、RAS等多种图像格式;支持格式转换、图像处理、几何变换等;最重要的是使用非常简单。原创 2014-01-26 14:44:52 · 16109 阅读 · 5 评论 -
强大的图像处理库ImageMagick:命令行上的PhotoShop
前面讲到了最简单的图像处理库CxImage,本文则推荐一个最强大的图像处理库ImageMagick,它被誉为命令行上的PhotoShop,而且被各大公司所采用。原创 2014-01-27 16:24:35 · 9984 阅读 · 0 评论 -
POCO日志库使用示例
Poco是一个开源的C++库,各方面功能比较全面,包括日志\多线程\文件系统\定时器\网络\配之文件等,同时使用也十分简单.本文对其中的日志模块进行了简单的试用.原创 2014-05-12 10:52:34 · 7980 阅读 · 1 评论 -
很好的cmake学习入门
我见过的最好的入门课cmake 学习笔记(一)转载 2014-06-11 10:57:39 · 1033 阅读 · 0 评论 -
Iaas平台Eucalyptus, OpenStack, OpenNebula社区活跃度比较
最近抽空做了一下Eucalyptus、OpenStack和OpenNebula项目的社区活跃度比较。比较的依据是自2009年来这三个项目官方论坛和邮件列表每个月所产生的讨论主题数、讨论帖子数、以及参与讨论的总人数。为了获取这些数据,我写了一个程序自动地从这三个项目的网站下载了所有的论坛和邮件列表信息,并且从这些信息中分析提取出我所需要的数据。这个程序也许不够完美,但是数据的准确程度应该可以控制在1转载 2014-07-04 15:28:03 · 1652 阅读 · 0 评论 -
Linux下gcc编译, 控制动态库导出函数
根据说明文档“How To Write Shared Libraries"介绍,有四种方法:1. 在方法声明定义时,加修饰:__attribute__((visibility("hidden")))2. gcc 在链接时设置 -fvisibility=hidden,则不加 visibility声明的都默认为hidden; gcc默认设置 -fvisibility=default,即全部转载 2013-12-05 14:42:42 · 2143 阅读 · 0 评论 -
Base64编码及编码性能测试
原创文章,欢迎转载。转载请注明出处:1.什么是Base64编码Base64是一种基于64个可打印字符来表示二进制数据的表示方法。由于2的6次方等于64,所以每6位为一个单元,对应某个可打印字符。在Base64中的可打印字符包括字母A-Z、a-z、数字0-9,这样共有62个字符,此外两个可打印符号在不同的系统中而不同。具体可参照维基百科:维基百科 Base64原创 2013-12-03 16:36:23 · 10074 阅读 · 1 评论 -
判断当前系统大小端liteEndian bigEndian
C++怎样判别大端小端使用宏的方法:const int endian = 1;#define is_bigendian() ( (*(char*) &endian) == 0 )#define is_littlendbian() ( (*(char*) &endian) == 1 ) 方法二:bool IsLittleEndian(){转载 2013-11-05 14:12:08 · 1202 阅读 · 0 评论 -
监听获取程序退出事件(Linux、Windows、Java、C++)
为什么要监听程序退出事件就不用多说了,有各种各样的需求吧。主要是用于后台程序,比如要在程序退出的时候释放资源,关闭连接等等。下面针对Java、C++在Windows、Linux下的处理分别进行介绍.1.Java监听程序退出事件Java本身是跨平台的,不必关系Windows还是Linux。具体做法如下:通过Runtime.getRuntime().addShutdownHoo原创 2013-11-20 17:50:41 · 15659 阅读 · 1 评论 -
win7下mingw为例编译boost
Boost 版本1.5.41.编译 1)生成bjam.exe cd boost_1_54_0\tools\build\v2 bootstrap.bat mingw mingw为编译器参数,根据实际情况指定,如msvc等,具体可见文档 2)使用bjam编译 将bjam拷贝至boost根原创 2013-11-06 17:35:24 · 1302 阅读 · 0 评论 -
win7下mingw使用asio,报错 '::UnregisterWaitEx' has not been declared
D:\share\workspace/plato/externs/boost_1_54_0/boost/asio/detail/impl/win_object_handle_service.ipp: In member function 'void boost::asio::detail::win_object_handle_service::move_construct(boost::asio:原创 2013-11-06 17:41:16 · 2484 阅读 · 0 评论 -
storm下运行C++程序(一)
转载,原文地址:http://blog.csdn.net/yan_mount/article/details/11527799学习storm有段时间了,也搭建了一个简单的环境,很欣赏它的一些理念,考虑到很多程序是C++实现的,如果要使用该平台的话,需要为这些程序实现一个接口,方便统一在storm中运行,折腾了几天,初步成功的实现了一个C++的bolt,特分享如下:1,需要先定义一个转载 2013-11-12 14:26:17 · 4430 阅读 · 0 评论 -
git “errno=Connection refused”
执行如下git命令时报错:git clone git://github.com/nathanmarz/storm-starter.git && cd storm-startererror:Cloning into 'storm-starter'...fatal: unable to connect to github.com:github.com[0: 192.30.252原创 2013-11-12 14:50:21 · 8369 阅读 · 1 评论 -
Storm下运行C++(二)
本文为简单翻译,原文地址:http://demeter.inf.ed.ac.uk/cross/stormcpp.html欢迎转载,转载时请注明出处:可参考:storm下运行C++程序(一)http://blog.csdn.net/jmppok/article/details/15501947作者实现了一个Storm的C++ Wrapper,开发人员可以使用该Wr翻译 2013-11-19 19:05:58 · 4973 阅读 · 4 评论 -
Storm DRPC 使用及访问C++ Bolt问题的解决方法
原创文章,欢迎转载,转载请注明出处:参考1:storm下运行C++程序(一)参考2:Storm下运行C++(二)参考3:在Strom中使用C++开发Bolt总结参考4:Storm DRPC 使用方法:1)根据[参考2]介绍,实现C++的Bolt; 其中storm.h 和 storm.cpp可从其中下载。JsonCPP可从官方下载编原创 2013-11-20 10:57:44 · 4829 阅读 · 2 评论 -
在Strom中使用C++开发Bolt总结
1.Storm简介Storm是Twitter开源的一套并行处理系统,网站主页:https://github.com/nathanmarz/storm/wiki其思想与Hadoop类似,但也与Hadoop有本质区别:Hadoop主要偏重批处理,Storm主要面向实时处理, 与Storm类似的系统还有Puma 、S4等。2.为什么使用C++开发Storm BoltSto原创 2013-11-19 18:10:59 · 8328 阅读 · 1 评论 -
解决 gcc/g++ 编译动态库通过却无法运行的问题
1.为什么编译通过却无法运行?默认情况下,gcc编译时只会查找相应的头文件,而不会连接具体的lib。也就是说只要include设置完全,就可以编译通过。它没有进一步检查include中的类和函数有没有实现,而是在运行时才开始查找。所以就会经常发生编译可以通过,但运行时却无法运行,因为在运行时它找不到相关类或者函数的实现。2.解决方法用过microsoft的vc6或者vs的小原创 2013-12-04 15:15:47 · 7405 阅读 · 0 评论 -
gcc/g++ -O 优化选项说明
查查gcc手册就知道了,每个编译选项都控制着不同的优化选项 下面从网络上copy过来的,真要用到这些还是推荐查阅手册 -O设置一共有五种:-O0、-O1、-O2、-O3和-Os。 除了-O0以外,每一个-O设置都会多启用几个选项,请查阅gcc手册的优化选项章节,以便了解每个-O等级启用了哪些选项及它们有何作用。 让我们来逐一考察各个优化等级: -O0:这个等级(字母“O转载 2013-12-04 17:20:32 · 16059 阅读 · 0 评论 -
Base64编码及编码性能测试 [改进]
原创文章,欢迎转载,转载请注明出处:参考:Base64编码及编码性能测试主要是针对文章中 Base64.cpp中的_getBase64Char(char c)和_getCharOfBase64(char c)两个函数进行了改进.原来代码为:char _getBase64Char(char c) { if(c>=0 && c<26) {原创 2013-12-05 11:00:30 · 3683 阅读 · 0 评论 -
switch 与 if else 效率分析与总结
本文是对网上一些讨论switch 与 if else 性能的参考资料的总结。参考资料列表:[1] if elseif 和switch那个执行效率高?[2]从汇编的角度分析C语言(六)switch和if else效率分析 [3]switch与ifelse的效率问题 [4]switch为什么比if else效率高????? [5] if和switch效率的再研究原创 2013-12-05 11:32:50 · 13121 阅读 · 1 评论 -
Windows API 进程间通信,管道(Pipe)
转载自:Windows API 进程间通信,管道(Pipe) 管道是一种用于在进程间共享数据的机制,其实质是一段共享内存。Windows系统为这段共享的内存设计采用数据流I/0的方式来访问。由一个进程读、另一个进程写,类似于一个管道两端,因此这种进程间的通信方式称作“管道”。 管道分为匿名管道和命名管道。 匿名管道只能在父子进程间进行通信,不能在网络间通信转载 2015-03-05 14:11:03 · 1960 阅读 · 0 评论