
C++
bqw2008
...........
展开
-
linux 多线程编程
原文地址:1.Linux“线程” 进程与线程之间是有区别的,不过Linux内核只提供了轻量进程的支持,未实现线程模型。Linux是一种“多进程单线程”的操作系统。Linux本身只有进程的概念,而其所谓的“线程”本质上在内核里仍然是进程。 大家知道,进程是资源分配的单位,同一进程中的多个线程共享该进程的资源(如作为共享内存的全局变量)。Linux中所谓的“线程”只是在转载 2014-07-02 19:39:00 · 622 阅读 · 0 评论 -
Lunix下编译静态库文件
Lunix下编译静态库文件:.o后缀文件:编译生成的中间代码文件;.a后缀文件:静态库文件,编译的时候会合到可执行程序中,文件比较大;.so后缀文件:动态库文件,只是一个指向,不会合到可执行程序中,当要调用函数库的时候才使用; 用一个简单的例子阐述下在lunix环境下生成静态库文件的过程:一. 源码文件:so_test.h:void test_a();voi转载 2016-03-21 16:29:36 · 410 阅读 · 0 评论 -
使用C语言写PostgreSQL函数
引言:使用C语言写PostgreSQL中的函数可以很方便的扩展PostgreSQL数据库的功能。由C语言写的函数,使用方法与PostgreSQL中内置的函数基本没有差别,性能基本也没有什么差别。本文一步一步教你如何使用C语言写PostgreSQL函数:1. 先根据一个简单函数的生成一个动态库,看PostgreSQL能否使用源文件为cfunc.c,内容如下:#includ转载 2016-03-22 19:02:45 · 5232 阅读 · 0 评论 -
linux下用phpize给PHP动态添加扩展
phpize简介 phpize 是属于 php-devel 中的东西,主要是设定 php 外挂模块的一些设定 所以安装 php-devel 相关套件就会有 phpize 可以使用 (档案预设存放于 /usr/bin/phpize ) phpize 命令是用来准备 PHP 外挂模块的编译环境的。下面例子中,外挂模块的源程序位于 extname 目录中 : $转载 2016-04-14 19:43:54 · 1405 阅读 · 0 评论 -
rpm包安装过程中依赖问题“libc.so.6 is needed by XXX”解决方法
本教程可以找到解决linux版本中出现诸如:“libc.so.6 is needed by XXX”问题的答案,如果还是没有解决看上面的相关文章推荐在CentOS上的Canon LBP2900安装打印机驱动,中间遇到了一些问题,主要是安装rpm包出现的依赖问题,现在解决了,现在简单总结一下。首先说明一下,我用的CentOS版本是6.6,64位。打印机驱动程序是两个rpm安装包:cn转载 2016-04-15 19:19:38 · 9240 阅读 · 0 评论 -
编译php增加postgresql的pgsql和pdo_pgsql扩展模块
lnpp环境,如果想把mysql换成postgresql,那么必须让php支持pgsql扩展。为了不重新编译php,可以使用phpize工具进行追加。1、进入php编译目录下的ext/pgsql/;2、根据php安装路径执行/usr/local/php/bin/phpize ;3、假如已经安装postgresql数据库;4、运行./configure --w原创 2016-04-18 20:51:39 · 10138 阅读 · 0 评论 -
gsoap使用总结
>>用C实现WebService,gsoap是最好的选择了。近一个月都在折腾这个,做个总结吧,估计会写得比较长。因为其中碰到了不少问题,但最终都解决调了。>>快速开始 1. gsoap官网。遇到问题时,官网往往是最能提供帮助的地方。 http://gsoap2.sourceforge.net/ 2. 几个值得参考的链接。 GSoap使用心得: http://转载 2016-05-17 09:41:17 · 297 阅读 · 0 评论 -
TCMalloc 安装和使用
Author:Echo Chen(陈斌)Email:chenb19870707@gmail.comBlog:Blog.youkuaiyun.com/chen19870707Date:October 20th, 2014 前面三篇译文《TCMalloc:线程缓冲的Malloc》、《使用TCMalloc的堆栈检查》、《使用TCMalloc进行堆栈分析》介绍了转载 2016-05-17 20:14:47 · 876 阅读 · 0 评论 -
使用TCMalloc进行堆栈分析
Author:Echo Chen(陈斌)Email:chenb19870707@gmail.comBlog:Blog.youkuaiyun.com/chen19870707Date:October 10th, 2014 在前一篇译文《使用TCmalloc的堆栈检查》,介绍了Tcmalloc进行堆栈检查,今天翻译《heap-profiling using tc转载 2016-05-17 20:15:52 · 636 阅读 · 0 评论 -
使用TCMalloc的堆栈检查
Author:Echo Chen(陈斌)Email:chenb19870707@gmail.comBlog:Blog.youkuaiyun.com/chen19870707Date:October 15th, 2014 在前一篇译文《TCMalloc:线程缓冲的Malloc》详细讲解了TCMalloc的工作原理和特点,今天翻译《heap-checking转载 2016-05-17 20:16:36 · 541 阅读 · 0 评论 -
TCMalloc:线程缓冲的Malloc
Author:Echo Chen(陈斌)Email:chenb19870707@gmail.comBlog:Blog.youkuaiyun.com/chen19870707Date:October 10th, 2014 这段时间比较闲,研究下内存管理,从官方文档开始啃起《TCMalloc : Thread-Caching Malloc》。 一、动转载 2016-05-17 20:17:31 · 2637 阅读 · 0 评论 -
TCMalloc 对MySQL 性能 优化的分析
Author:Echo Chen(陈斌)Email:chenb19870707@gmail.comBlog:Blog.youkuaiyun.com/chen19870707Date:October 10th, 2014 虽然经过研究发现TCMalloc不适合我们现有的游戏框架,但意外收获发现TCMalloc可以大幅度提高MY转载 2016-05-17 20:18:36 · 381 阅读 · 0 评论 -
用gsoap实现面向Java客户端的WebService
用gsoap实现面向Java客户端的WebService环境操作系统:Windows 7gsoap版本:2.8.6axis2版本:1.6.1C++编译器/开发环境:Visual Studio 2008JDK版本:1.6.0_22ant版本:1.7.0一、简单示例利用gsoap和axis,常规的WebService(C++实现)以及java访问客户转载 2016-05-07 13:50:47 · 1098 阅读 · 0 评论 -
Chromium Embedded Framework 中文文档(简介)
简介Chromium Embedded Framework (CEF)是由 Marshall Greenblatt 在2008年创办的开源项目,致力于基于Google Chromium项目开发一个Web控件。 CEF目前已支持多种编程语言和操作系统,能方便地集成到现有或者新的应用程序中,设计上,它追求高性能的同时,也追求易于使用,它的基本框架通过原生库提供C和C++的编程接口,这些接口转载 2016-07-24 21:53:50 · 6717 阅读 · 0 评论 -
Libcurl实现断点续传
一、LIbcurl简单介绍 其实关于Liccurl的介绍最好的是看官方文档:http://curl.haxx.se/ 几乎大部分的信息里面都能够查找到。 在这边简要介绍: 1)跨平台特性,几乎所有平台都可以使用 2)有许多其他语言的包装,如PHP、PYTHON等,也就是很多语言都可以使用libcurl 3)Libcurl的所有接转载 2016-07-15 13:39:41 · 964 阅读 · 0 评论 -
CEF3和本地程序交互机制
CEF中一个页面的框架如下图所示: CefBrowser:一个普通的浏览器页面(HTML)CefFrame:每一个页面都由至少一个frame组成,最顶层的为mainframecontext:JS执行环境,每个frame都有自己独立的context,CEF中使用V8JavaScriptEngine解析和执行JS代码 后端和前端的转载 2016-12-05 18:54:41 · 2995 阅读 · 0 评论 -
Linux信号(signal) 机制分析
【摘要】本文分析了Linux内核对于信号的实现机制和应用层的相关处理。首先介绍了软中断信号的本质及信号的两种不同分类方法尤其是不可靠信号的原理。接着分析了内核对于信号的处理流程包括信号的触发/注册/执行及注销等。最后介绍了应用层的相关处理,主要包括信号处理函数的安装、信号的发送、屏蔽阻塞等,最后给了几个简单的应用实例。 【关键字】软中断信号,signal,sigaction,kil转载 2016-12-08 14:18:23 · 297 阅读 · 0 评论 -
棋牌游戏服务器架构: 总体设计
棋牌游戏服务器架构: 总体设计 首先要说明的是, 这个棋牌游戏的服务器架构参考了网狐棋牌的架构。网狐棋牌最令人印象深刻的是其稳定性和高网络负载。它的一份压力测试报告上指出:一台双核r的INTEL Xeon 2.8CPU加上2G内存和使用共享100M光纤的机子能够支持5000人同时在线游戏。 在研究其服务器框架后发现,它的网络部分确实是比较优化的。它主要采转载 2017-06-28 17:02:54 · 1115 阅读 · 0 评论 -
about always-populate-raw-post-data must be set -1 的问题:
about always-populate-raw-post-data must be set -1 的问题:在/data/site/zabbix/include/classes/setup/CFrontendSetup.php 找到下面代码添加 :$current = -1; 如下:public function checkPhpAlwaysPopulateRawPostD原创 2016-03-31 14:45:46 · 8293 阅读 · 1 评论 -
如何生成SSH key
如何生成SSH keySSH key提供了一种与GitHub通信的方式,通过这种方式,能够在不输入密码的情况下,将GitHub作为自己的remote端服务器,进行版本控制步骤检查SSH keys是否存在生成新的ssh key将ssh key添加到GitHub中如何生成SSH KEY1. 检查SSH keys是否存在输入下面的命令,如果有文转载 2016-02-15 11:22:56 · 2031 阅读 · 0 评论 -
for_each的用法
for_each的用法原文地址:http://blog.youkuaiyun.com/hionceshine/archive/2008/11/19/3336318.aspxAbstract之前在(原創) 如何使用for_each() algorithm? (C/C++) (STL) 曾經討論過for_each(),不過當時功力尚淺,只談到了皮毛而已,這次看了effective STL的转载 2016-01-28 15:32:24 · 347 阅读 · 0 评论 -
Qt on Android:图文详解Hello World全过程
这是系列文章中的一篇,阅读本文前请先阅读《Windows下Qt 5.2 for Android开发入门》,以便确保开发环境和作者一致。部分文章被转发/转载却没有注明出处,特此声明:版权所有 foruok ,如需转载敬请注明出处(http://blog.youkuaiyun.com/foruok)。我将从实践出发,带领大家一步一步完成在 Android 上的第一个 Qt 应用: Hello Qt转载 2014-09-19 13:51:33 · 1707 阅读 · 0 评论 -
两个类相互包含引用的问题
1、背景编程中遇到如下错误:使用不完全类型**以及**前向声明。查找相关资料后发现是类的前向声明(forward declaration)问题:在程序中声明一个类后,此类是一个不完全类型(incompete type),即已知此类是一个类型,但不知道包含哪些成员。不完全类型只能以有限方式使用,不能定义该类型的对象。不完全类型只能用于定义指向该类型的指针及引用,或者用于声转载 2014-08-10 17:24:33 · 930 阅读 · 0 评论 -
QGraphicsScene QGraphicsView QGraphicsItem
Graphics View提供了一个界面,它既可以管理大数量的定制2D graphical items,又可与它们交互,有一个view widget可以把这些项绘制出来,并支持旋转与缩放。这个柜架也包含一个事件传播结构,对于在scene中的这些items,它具有双精度的交互能力。Items能处理键盘事件,鼠标的按,移动、释放、双击事件,也可以跟踪鼠标移动。Graphics View使用BSP树来提转载 2014-09-10 14:15:27 · 1283 阅读 · 0 评论 -
iTunesMetadata.plist的作用
我们都知道苹果软件中iTunesMetadata.plist的作用,那就是在iTunes之中可以显示出软件相应的信息,包括名称、厂商、类别、账户、购买日期等。看上去除了这些没有什么其他作用了,其实iTunesMetadata.plist这个文件还有一个最大的也是最有用的作用,那就是判断是否存在升级版本。这里所说的是否存在升级版本并非简单的版本号显示,而是通过每个版本相应的版本号代码来确认iTune转载 2014-09-17 15:25:49 · 3693 阅读 · 0 评论 -
C++中使用内存映射文件处理大文件
引言 文件操作是应用程序最为基本的功能之一,Win32 API和MFC均提供有支持文件处理的函数和类,常用的有Win32 API的CreateFile()、WriteFile()、ReadFile()和MFC提供的CFile类等。一般来说,以上这些函数可以满足大多数场合的要求,但是对于某些特殊应用领域所需要的动辄几十GB、几百GB、乃至几TB的海量存储,再以通常的文件处理方法进行处理显然转载 2014-11-08 22:57:41 · 674 阅读 · 0 评论 -
pkg-config for mac 安装
[编译环境] pkg-config for mac 安装由于大部分的开源工程都需要用到pkg-config,因此今天在这讲解一下pkg-config for mac 安装过程.1.检测环境是否已安装pkg-config再命令行中输入: pkg-config 若未安装,则提示命令未找到.2.安装pkg-configcurl http:/转载 2014-10-15 11:08:42 · 13835 阅读 · 2 评论 -
C++虚基类详解
我们知道,如果一个派生类有多个直接基类,而这些直接基类又有一个共同的基类,则在最终的派生类中会保留该间接共同基类数据成员的多份同名成员。在引用这些同名的成员时,必须在派生类对象名后增加直接基类名,以避免产生二义性,使其惟一地标识一个成员,如: c1.A::display( )在一个类中保留间接共同基类的多份同名成员,虽然有时是有必要的,可以在不同的数据成员中分别存放不同的数据,也转载 2014-11-18 20:41:03 · 831 阅读 · 0 评论 -
正确运用stl map的erase方法
调试程序时候又遇见map中erase方法,以前也遇到相关问题,所以记录在blog中STL的map表里有一个erase方法用来从一个map中删除掉指令的节点eg:map mapTest;typedef map::iterator ITER;ITER iter=mapTest.find(key);mapTest.erase(iter);像上面这样只是删除单个节点转载 2014-11-27 21:35:01 · 549 阅读 · 0 评论 -
vector
在c++中,vector是一个十分有用的容器,下面对这个容器做一下总结。1 基本操作(1)头文件#include.(2)创建vector对象,vector vec;(3)尾部插入数字:vec.push_back(a);(4)使用下标访问元素,cout(5)使用迭代器访问元素.vectorint>::iterator it;for(it=ve转载 2014-11-24 22:37:31 · 1029 阅读 · 0 评论 -
C++ string 用法详解
C++ string 用法详解C++ string 详解任何人对本文进行引用都要标明作者是Nicolai M.Josuttis///////////////////////////////////////////////////////////////////////////////////C++ 语言是个十分优秀的语言,但优秀并不表示完美。还是有许多人不愿意使用C转载 2014-12-07 22:51:49 · 622 阅读 · 0 评论 -
_CrtDumpMemoryLeaks()的作用
CrtDumpMemoryLeaks()就是显示当前的内存泄漏。 注意是“当前”, 也就是说当它执行时, 所有未销毁的对象均会报内存泄漏。 因此尽量让这条语句在程序的最后执行。它所反映的是检测到泄漏的地方。一般用在MFC中比较准确,在InitInstance里面调用_CrtDumpMemoryLeaks。C转载 2014-12-25 22:19:08 · 10340 阅读 · 0 评论 -
C++异常机制的实现方式和开销分析
在我几年前开始写《C++编码规范与指导》一文时,就已经规划着要加入这样一篇讨论 C++ 异常机制的文章了。没想到时隔几年以后才有机会把这个尾巴补完 :-)。还是那句开场白:“在恰当的场合使用恰当的特性” 对每个称职的 C++ 程序员来说都是一个基本标准。想要做到这点,就必须要了解语言中每个特性的实现方式及其时空开销。异常处理由于涉及大量底层内容,向来是 C++ 各种高级机制中较难理解和透彻掌握转载 2014-12-30 22:01:22 · 586 阅读 · 0 评论 -
代理模式
前言青春总是那样,逝去了才开始回味;大学生活也是在不经意间就溜走了,现在上班的时候,偶尔还会怀念大学时,大家在一起玩游戏的时光。大学喜欢玩游戏,但是可悲的校园网,速度能把人逼疯了;还好,后来搞了一个游戏代理,总算能勉勉强强的玩了两年。时至今日,敲起键盘写设计模式的时候,又想起了那些美好的时光。好了,这是一篇技术文章,而不是抒情怀旧的散文;思绪再回到这篇文章上来,游戏代理,是个什么东西,有了转载 2015-01-03 17:05:10 · 687 阅读 · 0 评论 -
理解 Visual C++ 应用程序的依赖项
确定您的应用程序依赖哪些 Visual C++ 库的一种方式是:查看您项目的“项目设置”对话框中的“常规”选项卡。例如,您可能看到项目使用的是 MFC 和 ATL 库。如果选择了“在动态库中使用 MFC”,则您的应用程序在运行时将依赖 MFC DLL(如 mfc80.dll)。如果您的应用程序不使用 MFC 或 ATL,它可能仍依赖 CRT 库(如果已在“项目属性”的 C/C++ 分支中的“代码生转载 2015-05-25 21:24:12 · 810 阅读 · 0 评论 -
引起C运行时错误R6034的原因和解决方法
An application has made an attempt to load the C runtime library without using a manifest.某个应用程序已经尝试不使用清单来加载 C 运行时库。这种加载 Visual C++ DLL 的方式不受支持。需要修改您的应用程序,以使用清单生成。有关更多信息,请参见产品文档中的主题“作为共享的并行程序集的 Visu转载 2015-05-25 21:21:32 · 24362 阅读 · 0 评论 -
转:C/C++的64位整型
在C/C++中,64为整型一直是一种没有确定规范的数据类型。现今主流的编译器中,对64为整型的支持也是标准不一,形态各异。一般来说,64位 整型的定义方式有long long和__int64两种(VC还支持_int64),而输出到标准输出方式有 printf(“%lld”,a),printf(“%I64d”,a),和cout 本文讨论的是五种常用的C/C++编译器对64位整型的支持,这转载 2016-01-20 18:13:13 · 505 阅读 · 0 评论 -
g++ 无法调试
问题描述:在gcc4.9,gdb7.0环境下,启动gdb时出现了如下错误:Dwarf Error: wrong version in compilation unit header (is 4, should be 2) [in module /dawnfs/users/ 出现此错误的原因主要是gcc4.9生成的调试信息是dawnfs4,而gdb7.0支持的是dawnfs2转载 2015-12-05 20:34:22 · 1862 阅读 · 0 评论 -
C++导出类到Python
上次稍微谈了下如何用C++写的函数来扩展Python,使Python很方便的调用用C++写的高效的、快速的函数。我们知道——Python是面向对象的,那么我们是否可以用C++写的类来扩展Python程序呢?答案是可以的!首先说明:我的Python是3.1的,与2.x在一些Python/C API有区别。 一、简介 :比如我们有一个C++类——用于记录一个学生的信息:姓名、数学成绩、英语...转载 2018-03-09 13:53:26 · 1934 阅读 · 1 评论