Tuxedo中string导致内存泄漏

2016年4月30日 没有评论

对象创建的时候会调用构造函数来初始化对象,对象销毁的时候会调用析构函数。 普通的自动变量(local非static)包含构造函数和析构函数。 当进入变量作用域的时候构造函数被调用,当离开变量作用域的时候析构函数被调用。 当在tuxedo的环境中调用 tpreturn() 或者 tpforward() 函数时,编译器进行了一个non-local的goto (using longjmp(3)),导致自动变量的析构函数没有被调用。 为了避免这个问题,我们应该在服务体中调用直接调用 tpreturn() 或 tpforward() (而不是在服务体调用的函数中调用这两个函数)。 ps: 1.服务体中不能包含...

分类: 技术 标签:

epoll入门实例

2016年4月10日 没有评论

epoll是目前进行服务器端编程的普遍选择,好处很多,这里不再赘述,本文主要描述如何在c语言中使用epoll的完整样例程序。 首先介绍用到的数据结构和三个api说明,然后通过编写一个打印所有输入到socket的字符输出到终端的服务器端的程序来完成整个例子。 epoll_event是用来对要监控的socket描述, 它包括epoll_data_t和要监控的事件类型的(一个__uint32_t类型的events)。epoll_data_t里的fd是用来存储要监控的文件描述符。 events 结构体中第一个参数支持的事件类型 – EPOLLIN,读事件 – EPOLLOUT,写事件 – EPOLLPRI,带外数据,与sele...

分类: 技术 标签:

[0;32m eclipse显示颜色

2016年4月7日 没有评论

用 eclipse cdt 运行 gtest 在 console 的输出结果有有 shell 终端的颜色代码输出 Running main() from gmock_main.cc [==========] Running 4 tests from 1 test case. [----------] Global test environment set-up. [----------] 4 tests from PrimeFactors [ RUN ] PrimeFactors.1factor [ OK ] PrimeFactors.1factor (0 ms) [ RUN ] PrimeFactors.2factor [ OK ] PrimeFactors.2factor (0 ms) [ RUN ] PrimeFactors...

分类: 技术 标签:

vim函数跳转命令

2016年3月9日 2 条评论

gd 跳转到局部函数定义. gD 跳转到全局函数定义. g* 向下搜索光标所在单词 ( 当光标在 'rain' 会查找 'rainbow'). g# 向上搜索光标所在单词 gg 跳转到第一行 G 跳转到最后一行

分类: linux 标签:

分布式系统的数据一致性和处理顺序问题

2016年2月18日 4 条评论

现在先抛出问题,假设有一个主数据中心在北京M,然后有成都A,上海B两个地方数据中心,现在的问题是,假设成都上海各自的数据中心有记录变更,需要先同步到主数据中心,主数据中心更新完成之后,在把最新的数据分发到上海,成都的地方数据中心A,地方数据中心更新数据,保持和主数据中心一致性(数据库结构完全一致)。数据更新的消息是通过一台中心的MQ进行转发。 先把问题简单化处理,假设A增加一条记录Message_A,发送到M,B增加一条记录 MESSAGE_B发送到M,都是通过MQ服务器进行转发,那么M系统接收到条消息,增加两条数据,那么M...

分类: 技术 标签:

nginx 实现 ajax 跨域请求

2016年1月24日 1 条评论

AJAX从一个域请求另一个域会有跨域的问题。那么如何在nginx上实现ajax跨域请求呢?要在nginx上启用跨域请求,需要添加add_header Access-Control*指令。如下所示: location /{ add_header 'Access-Control-Allow-Origin' 'http://other.subdomain.com'; add_header 'Access-Control-Allow-Credentials' 'true'; add_header 'Access-Control-Allow-Methods' 'GET'; ... ... the rest of your configuration here ... ... } 1234567891011 ...

分类: nginx 标签: ,

区分同步 异步 阻塞 非阻塞

2016年1月18日 没有评论

同步/异步 首先来解释同步和异步的概念,这两个概念与消息的通知机制有关. 举个例子,比如我去银行办理业务,可以自己去排队办理,也可以叫人代办,等他帮忙处理完了直接给我结果,对于要办理这个银行业务的人而言,自己去办理是同步方式,而别人代办完毕则是异步方式.区别在于,同步的方式下,操作者主动完成了这件事情.异步方式下,调用指令发出之后,操作马上就返回了,操作者并不能马上就知道结果了,而是等待所调用的异步过程(在这个例子中是帮忙代办的人)处理完毕之后,通过通知手段(在代码中通常是回调函数)来告诉操作者结果. 在上图的异步IO...

分类: 技术 标签:

gtest和gmock入门实例

2016年1月10日 没有评论

对于 c++ 来说写单元测试和 mock 框架不是一件容易的事情。还好, Google 为我们搭建了一个出色的单元测试和 mock 框架。网上的例子很多都过多强调概念,本文用一个简单的例子让大家对于什么是 gtest 和 gmock 让大家有一个直观的了解,让大家很快上手,就像写 hello word 一样容易。 gtest&gmock 的 1.6 版本的使用 make 编译,新版的已经已经迁移到 github 上使用 cmake 编译,安装过程很多,这里不在重复,如果大家有需要再单独写。 1.下载安装 Google Test and Google Mock 2. 编译生成静态库gtest_main.a gmock_main.a (包含main...

分类: 技术 标签: ,

那些我印象深刻的建议和教诲

2015年12月26日 没有评论

看过博主很多篇文章,而且还经常忘了网址,很多观点深有感触,只是自己少了那份文字描述能力,转载过来共勉。 人的一生,当然有很多的时间去自己摸索和探究,做出自己的选择;其他人的教诲,很多时候并不会干涉选择,反而会让人少走弯路,更快捷抵达自己的目标。下面,我列了自己印象深刻的教诲(或者说“建议”),既是对各位的感谢,也希望通过分享让更多人受益。 技术是你的安身立命之本 这是大学时候中文系的王老师对我说的。当时我基本不怎么上计算机的专业课,晚自习看原版教材,白天在图书馆泡着,外加去中文系听课。对从小只接受...

分类: 技术 标签:

c++虚函数和纯虚函数的区别

2015年12月13日 没有评论

多态是C++的重要特性,通过基类指针来访问派生类的函数。 虚函数就是为了实现这功能而定义的函数,虚函数可以在定义时实现也可以不实现,定义了虚函数的类可以实例化。 纯虚函数更多的是表示接口的含义,纯虚函数定义时不能实现,需要在派生的子类中实现且必须实现,含有纯虚函数的类不能实例化。 虚析构函数与虚函要成对出现,以便在通过基类指针释放派生对象时,调用派生类的析构函数。 class VirtualFun { public: VirtualFun(){std::cout<<"create VirtualFun"<<std::endl;}; v...

分类: 技术 标签: