Libevent使用例子,从简单到复杂

本文从简单到复杂,展示如何使用libevent。网上的许多例子都是只有服务器端的,本文里面客户端和服务器端都有,以飨读者。         关于libevent编程时的一些疑问可以阅读《libevent编程疑难解答》。假如读者还想了解libevent的具体实现,可以阅读《libevent源码分析...

2018-09-11 22:33:45

阅读数:21

评论数:0

OBS-Studio使用VS2015编译调试

官方编译文档:https://github.com/jp9000/obs-studio/wiki/Install-Instructions#windows-build-directions 官方source guide: https://obsproject.com/wiki/Sources-G...

2018-09-05 22:58:12

阅读数:267

评论数:0

c++11 静态成员线程安全

c++11 要求保证函数内部静态变量线程安全。 实测是保证静态成员构造的时候线程安全。 #include <iostream> #include <unistd.h> #include &...

2018-08-21 21:52:00

阅读数:100

评论数:0

汇编环境搭建(vs2010(2012)+masm32)

我本地使用的环境VS2012(2010)+MASM32,下面的图是在网上找的几个博客拼在一起的,用的是vs2010,但是并不影响。(所有文件我都打包好了,如果懒的话可以直接下载这个包)地址是:http://download.csdn.net/detail/u013761036/9601184   ...

2018-08-19 10:58:48

阅读数:61

评论数:0

让C++回调函数可以同时支持成员函数和静态函数的方法

回调函数是分层软件系统中经常使用的一种技巧,当下层需要调用上层的接口时,一般都使用回调函数来破除循环依赖。在纯C语言环境中,回调函数用起来很简单——一个函数指针而已。但是当大家都用上C++以后,回调函数碰到了点麻烦:很多模块接口都是成员函数,怎么回调? 一些较有经验的程序员会说:成员函数也是可以...

2018-08-09 21:10:41

阅读数:67

评论数:0

模板与成员函数指针

#include <iostream> #include <list> using namespace std; /*包装类,成员函数指针类型与普通函数指针类型不同,不能在类外直接定义*/ template...

2018-08-08 21:58:38

阅读数:176

评论数:0

C/C++语言字符串操作总结大全(超详细)

字符串操作 strcpy(p, p1) 复制字符串 strncpy(p, p1, n) 复制指定长度字符串 strcat(p, p1) 附加字符串 strncat(p, p1, n) 附加指定长度字符串 strlen(p) 取字符串长度 strcmp(p, p1) 比较字符串 s...

2018-08-06 21:43:20

阅读数:133

评论数:0

详解C语言可变参数va_list和vsnprintf及printf实现

C语言的变长参数在平时做开发时很少会在自己设计的接口中用到,但我们最常用的接口printf就是使用的变长参数接口,在感受到printf强大的魅力的同时,是否想挖据一下到底printf是如何实现的呢?这里我们一起来挖掘一下C语言变长参数的奥秘。 先考虑这样一个问题:如果我们不使用C标准库(libc)...

2018-08-06 21:37:11

阅读数:40

评论数:0

并行计算简介和多核CPU编程Demo

tag:多线程,并行计算,OpenMP,多核编程,工作线程池 ( 2008.01.19 更新  鉴于读者反映代码阅读困难,重新改写了文章和实现,使文章更易读 ) ( 2007.09.04 更新  把用事件控制的线程启动更新为临界区的实现 )     2006年是双核的普及年,双核处理器出货...

2018-08-06 21:31:34

阅读数:182

评论数:0

深入理解C++浮点数(float、double)类型数据比较、相等判断

浮点数在内存中的存储机制和整型数不同,其有舍入误差,在计算机中用近似表示任意某个实数。具体的说,这个实数由一个整数或定点数(即尾数)乘以某个基数(计算机中通常是2)的整数次幂得到,这种表示方法类似于基数为10的科学记数法。所以浮点数在运算过程中通常伴随着因为无法精确表示而进行的近似或舍入。但是这种...

2018-08-05 18:07:48

阅读数:56

评论数:0

VC++实现切换按钮

VC++实现切换按钮 有时候要实现两个选项的切换,常规做法1是放两个Radio按钮控件,并设置这两个按钮为一组。2是放一个Check按钮控件。但感觉都不是那么理想和直观。有没有更好的实现方式呢?下面将给你介绍一种我自绘的控件,我把它命名为“切换控件”(SwitchButton)。实现的效果如下图...

2018-08-05 17:40:04

阅读数:71

评论数:0

设计模式C++实现(15)——观察者模式

 软件领域中的设计模式为开发人员提供了一种使用专家设计经验的有效途径。设计模式中运用了面向对象编程语言的重要特性:封装、继承、多态,真正领悟设计模式的精髓是可能一个漫长的过程,需要大量实践经验的积累。最近看设计模式的书,对于每个模式,用C++写了个小例子,加深一下理解。主要参考《大话设计模式》和《...

2018-08-05 17:34:43

阅读数:23

评论数:0

在DLL间或者DLL与EXE之间传递vector对象或指针的问题

今天在完成一个功能模块时,遇到了一个很棘手的问题,大概是这样的: 主模块(EXE)的一个DLL中有一个函数FunA(),该函数需要查询数据库,得到记录集做处理,而数据库的操作又单独封装导出了一个DLL,由于记录集是变长的(不知道有多少记录),所以采用vector对象来传递数据。大概的过程如下: ...

2018-08-05 17:29:32

阅读数:79

评论数:0

在用户线程/主线程中推荐MsgWaitForMultipleObjects代替WaitForSingleObject和WaitForMultipleObjects()函数

在多线程编程中,通常都需要线程间的同步,一个线程要等待另一个线程的事件才继续执行,一般的做法是采用WaitForSingleObject和WaitForMultipleObjects()函数来实现。 但在实际的应用中,经常出现等待线程卡死的状况,也就是说等待的事件一直无效。为什么事件一直无效呢?很...

2018-08-05 17:27:26

阅读数:28

评论数:0

STL 序列容器和关联容器erase的用法

之前在代码中使用map::erase函数时,误搬了vector::erase的用法,导致Server down掉了,好在在测试环境就及时发现了问题,在上线前进行了补救==。 以下总结一下map::erase的正确用法。 首先看一下在循环中使用vector::erase时我习惯的用法: for(...

2018-08-05 17:22:09

阅读数:71

评论数:0

windbg配置符号

转载:https://blog.csdn.net/nui111/article/details/51893019安装与配置windbg的symbol(符号)第一步 是从 http://www.microsoft.com/ddk/debugging 下载最新版本的 WinDBG,因为符号服务器二进制...

2018-06-02 11:07:20

阅读数:115

评论数:0

Ubuntu安装netdata监控平台

1.安装工具sudo apt install zlib1g-dev gcc make git autoconf autogen automake pkg-config uuid-dev2.下载netdata项目git clone https://github.com/firehol/netdat...

2018-04-07 20:11:58

阅读数:450

评论数:0

Boost程序库完全开发指南-读书笔记

《Boost程序库完全开发指南——深入C++“准”标准库》读书笔记(一)作者:gysutantoman注:文字、程序片段大部分摘录自书中。1.scoped_ptr 1).scoped_ptr所有权严格,不能转让,一旦scoped_ptr获取了对象的管理权,你就无法再从它那里取回来。 2).sc...

2018-02-10 22:00:37

阅读数:239

评论数:0

在阿里云ECS里安装Windows 7 32位中文版

目的:安装Windows 7系统,替换原有的Windows 2008系统(原系统不能再用,请注意备份数据)    过程:      001. 查看当前ECS的系统版本信息,Windows 2008 SP2 标准中文版       002. 查看当前系统设备管理器中,网卡的驱动文...

2017-12-17 09:37:58

阅读数:1989

评论数:0

阿里云服务器ECS Ubuntu16.04-64-bit学习之一:配置桌面

最近想琢磨下服务器,于是在阿里云上申请了一个Ubuntu16.04-64-bit的服务器练练手,第一次弄还是挺麻烦的。想在公网上搭建web服务器,由于直接server不好看出效果,于是小生先安装个桌面环境,下面是从开始到安装好的整个过程步骤。  下图是最终结果: 1. 停止正在运行的实例 ...

2017-12-10 13:41:15

阅读数:786

评论数:0

提示
确定要删除当前文章?
取消 删除
关闭
关闭