自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

skdkjxy的专栏

好好工作,努力挣钱~柱子

  • 博客(37)
  • 资源 (22)
  • 收藏
  • 关注

转载 C++学习 Boost状态机说明statechart

1. 状态 对象在其生命周期内,所处于的运动和发展阶段。例如:人可以处于工作中这个状态,也可以处于娱乐中状态。状态应该有上下文环境。例如:人处于工作中状态,要属于职业生涯状态而不能是退休状态,也必须是活着的,而不能是死亡的状态。状态可以有子状态。例如:工作中状态,可以有开会中,会客中,被训斥中等子状态。2. 状态机由许多相关状态构成的集合。把一个对象,或者一个系统看做是一个

2015-05-29 10:03:39 10521 3

转载 ceph存储 状态机思路在程序设计中的应用

状态机思路在单片机程序设计中的应用状态机的概念状态机是软件编程中的一个重要概念。比这个概念更重要的是对它的灵活应用。在一个思路清晰而且高效的程序中,必然有状态机的身影浮现。比如说一个按键命令解析程序,就可以被看做状态机:本来在A状态下,触发一个按键后切换到了B状态;再触发另一个键后切换到C状态,或者返回到A状态。这就是最简单的按键状态机例子。实际的按键解析程序会比这更复杂些

2015-05-29 09:43:54 1068

转载 C++学习 boost学习之-polymorphic_downcast

Boost中文手册下载:http://download.csdn.net/detail/skdkjxy/8723045用法:1 polymorphic_downcast在调试状态下会测试转换是否成功,在非调试状态下内部直接调用static_cast实现2 在向下转型方面,速度比dynamic_cast快3 polymorphic_downcast 用于那些你应该用而又不想用dyna

2015-05-27 14:22:35 876

转载 C++学习 boost学习之-weak_ptr

Boost中文手册下载:http://download.csdn.net/detail/skdkjxy/8723045用法:1 weak_ptr是share_ptr的观察者,打破递归的依赖关系,旁观一个共享资源而不能拥有所有权,或者为了避免悬空指针2 weak_ptr 不对它所观察的指针提供重载的 operator* 和operator->,所以要访问观察指针,需要转换回share

2015-05-27 14:22:30 630

转载 C++学习 boost学习之-intrusive_ptr

Boost中文手册下载:http://download.csdn.net/detail/skdkjxy/8723045用法:1 与share_ptr功能上是一样的,只不过引用计数是采用侵入式实现的,尽量避免使用,除非:已有代码使用或提供了插入式的引用计数智能指针的大小必须与裸指针的大小相等需要把 this 当作智能指针来使用时(this是智能指针的this)2  需要你

2015-05-27 14:22:28 1904

转载 C++学习 boost学习之-numeric_cast

Boost中文手册下载:http://download.csdn.net/detail/skdkjxy/8723045用法:1 不同类型之间进行转换时,尽量使用numeric_cast,他会检查数据的范围,如果有问题会抛出异常2 对浮点数类型,不会抛出异常,会产生截断3 原则在无符号与有符号类型间进行赋值或比较时在不同大小的整数类型间进行赋值或比较时从一个函数返回类

2015-05-27 14:21:04 1256

转载 C++学习 boost学习之-polymorphic_cast

Boost中文手册下载:http://download.csdn.net/detail/skdkjxy/8723045用法:1 dynamic_cast对指针类型转换失败会返回空,对引用转型失败会抛出异常,而polymorphic_cast统一了这两种不一致的行为;polymorphic_cast会都抛出异常2 polymorphic_cast的好处是避免因为疏忽导致忘记测试转换后的指

2015-05-27 14:20:59 704

转载 C++学习 boost学习之-shared_array

Boost中文手册下载:http://download.csdn.net/detail/skdkjxy/8723045用法:  1 用于共享数组所有权的智能指针  2 用于数组而不是单个对象  3 std::vector的shared_ptr提供了比shared_array更多的灵活性综上,个人认为shared_array价值不大,不如用std::vector的shar

2015-05-27 14:20:52 1443

转载 C++学习 boost学习之-shared_ptr

Boost中文手册下载:http://download.csdn.net/detail/skdkjxy/8723045用法:1 shared_ptr是具有引用计数功能的指针,一般用于复制操作很昂贵,或代表的东西被多个东西共享;    引用计数功能分为侵入式和非侵入式,侵入式要求类提供增加或减少计数的函数或数据成员,而非侵入式的没有这方面要求2 可以在构造时传入删除器,使用自己的

2015-05-27 14:20:50 862

转载 C++学习 boost学习之-scoped_array

Boost中文手册下载:http://download.csdn.net/detail/skdkjxy/8723045用法:1 与socped_ptr类似,之不过它是最数组生存期的管理,析构用delete[]2 最好用vector,因为更强大,更灵活如:   std::vector array(100, 0);//定义100个大小的数组,初始化为0  //应用该数组

2015-05-27 14:20:47 576

转载 C++学习 boost学习之-scoped_ptr

Boost中文手册下载:http://download.csdn.net/detail/skdkjxy/8723045用法:1 不需要手工删除,析构函数自动调用delete2 不能被复制和复制构造,因为这个函数是私有函数3 一个scoped_ptr仅保存一个裸指针,不能两个以上scoped_ptr保存一个裸指针,因为析构时会有问题4 用scoped_ptr实现impl机制时,必

2015-05-27 14:20:00 622

转载 嵌入式 linux下利用backtrace追踪函数调用堆栈以及定位段错误

一般察看函数运行时堆栈的方法是使用GDB(bt命令)之类的外部调试器,但是,有些时候为了分析程序的BUG,(主要针对长时间运行程序的分析),在程序出错时打印出函数的调用堆栈是非常有用的。在glibc头文件"execinfo.h"中声明了三个函数用于获取当前线程的函数调用堆栈。 [cpp]view plaincopyprint?int backtrace(vo

2015-05-27 14:19:23 3487

转载 C++学习 boost学习之-lexical_cast

Boost中文手册下载:http://download.csdn.net/detail/skdkjxy/8723045用法:1 lexical_cast 想象为使用一个 std::stringstream 作为字符串与数值的表示之间的翻译器2 转换对象必须重载输入输出操作符3 如果转换有问题,会抛出异常4 一般用途:从字符串类型到数值类型的转换从数值类型到字

2015-05-21 10:53:52 740

转载 C++学习 boost学习之-BOOST_STATIC_ASSERT

Boost中文手册下载:http://download.csdn.net/detail/skdkjxy/8723045用法:1 编译器断言,同样在运行期通过断言检测程序正确性,但是该宏可以在编译器检查正确性2 由于编译器断言要求在编译器,断言的内容的值是能够计算出来的如:BOOST_STATIC_ASSERT(sizeof(int) 总结,也是比较有用的工具;

2015-05-21 10:52:38 589

转载 C++学习 boost学习之checked_delete

用法:删除一个动态分配的对象时,必须调用它的析构函数。如果这个类型是不完整的,即只有声明没有定义,那么析构函数可能会没被调用。这是一种潜在的危险状态,所以应该避免它。对于类模板及函数模板,风险会更大,因为无法预先知道会使用什么类型。使用checked_delete 和 checked_array_delete, 可以解决这个删除不完整类型的问题。它没有运行期的额外开销,只是直接调用

2015-05-21 10:48:32 606

转载 C++学习 boost学习之-noncopyable

Boost中文手册下载:http://download.csdn.net/detail/skdkjxy/8723045用法:1 私有派生于noncopyable的类都不能复制和赋值2 原理是:noncopyable内部禁止了赋值和复制3 该类可以被很好被复用,减少工作量,不用把想要禁止赋值和复制的类都自行定义私有的赋值和复制方法,只需从该类派生即可4 什么情况下我们需要自定义复

2015-05-21 10:48:17 1070

转载 C++学习 boost学习之addressof

用法:1 要获得一个对象的真实地址请用addressof,而非operator&,2 addressof会绕过operator&而取得真实地址没什么好说的,取对象地址最安全做法就是用这个了!

2015-05-21 10:46:42 516

转载 C++学习 boost学习之-enable_if

Boost中文手册下载:http://download.csdn.net/detail/skdkjxy/8723045用法:1 你需要在把一个符合某些条件的函数加入到或排除出重载决议集合中。你需要根据某个条件将一个类模板的特化版本加入到或排除出特化集合中。2   实现方法,看如下例子: void some_func(int i){      st

2015-05-21 10:46:21 2007

转载 C++学习 boost学习之-Operators

Boost中文手册下载:http://download.csdn.net/detail/skdkjxy/8723045用法:1 c++一个重要的功能是复用,避免写重复代码,而boost为自定义类的operator的实现代码提供了复用实现2 operator重载中,有这样一个事实:多数运算符重载实现中可以通过调用少数的运算符重载函数来实现   如 下:下面的实现,都是通过两个运算符

2015-05-21 10:44:47 569

转载 C++学习 boost学习之-Regex

用法:1 提供列正则表达式的匹配,寻找和替换功能2 匹配用法    boost::regex reg(".");   assert(boost::regex_match(“a”,reg)==true);3 查找用法  boost::regex reg("(xxx))");boost::smatch m;std::string s="Calls to xxx. \

2015-05-21 10:42:32 1265

转载 C++学习 boost学习之-any

Boost中文手册下载:http://download.csdn.net/detail/skdkjxy/8723045用法:1 内部原理:通过模板类型的构造函数来实现2 通过any_cast来转换为真实的类型3 通过any_cast转换指针,如果失败返回空4 通过any_cast转换引用,失败抛出异常抛出异常代表非预料性错误,返回空不代表错误;

2015-05-21 10:41:40 509

转载 C++学习 boost学习之-Variant

用法:1 他与c语言中的union相对应2 通过模板参数定义可以支持的类型3 通过boost::get()进行访问4 可通过boost::static_visitor与boost::apply_visitor(visitor, variant).的组合来访问总结,目前还没想到这个有什么很好的用处;看例子体会用法:class print_visitor : pub

2015-05-21 10:39:16 1474

转载 C++学习 boost学习之-Tuples

要点:1 是标准库中std::pair的扩展,只不过pair是一个2-tuple2 tuple最多可以支持10个元素3 tuple较结构体相比,更容易声明,定义和使用;4 与std::make_pair相对应的有boost::make_tuple5 访问tuple      boost::tuple  triple(42,3.14,"The amazing tuple!")

2015-05-21 10:36:51 719

转载 C++学习 boost学习之-bind

要点:1 是标准库中bind1st和bind2st的扩展,功能更强大2 他是一个创建函数对象的工具,而函数对象时标准库的算法需要的,所以bind提供了方便创建函数对象的功能3 使用bind的代码更简洁,易懂,较标准库的mem_fun,mem_fun_ref等好用4 bind的占位符_1,_2...对普通函数最多有9个,对于成员函数仅支持8个,第一个参数是类的this指针5 bi

2015-05-21 10:35:59 466

转载 C++学习 boost学习之-Lambda

要点:1 c++是面向对象的语言,尽量把所以一切东西看成对象,包括数据类型,函数,表达式,所以把这些东西转换为对象时非常关键的,    boost基本上就是把什么都看做是对象来处理,这样把一般函数或表达式转化为函数对象很重要,同前一次说的bind,和这一次要学习   的lambda,本质的作用就是把函数或表达式转换为函数对象;lambda可以把表达式转换为函数对象,避免了程序中写很多仿

2015-05-21 10:33:16 660

转载 C++学习 boost学习之-function

要点:1 用于保存函数对象,本身是函数对象2 与bind一起使用,威力巨大:class command { boost::function f_;public: command() {} command(boost::function f):f_(f) {} void execute() { if (f_) { f_();

2015-05-21 10:31:08 661

转载 C++学习 boost学习之-Signals

要点:1 函数和函数对象的灵活多点回调2健壮的触发器及事件处理的机制3兼容于函数对象工厂,如 Boost.Bind和 Boost.Lambda4 Boost.Signals 库具体化了信号(signals)和插槽(slots),信号指的是某种可被"抛出"的东西,而插槽是接收该信号的连接者。这是一种著名的设计模式,它还有另外一些名字Observer, signals/sl

2015-05-21 10:25:09 965

转载 C++学习 boost学习之-Filesystem

要点:1 头文件   #include "boost/filesystem.hpp" // includes all needed Boost.Filesystem declarations   #include // for std::cout   using boost::filesystem;2 在path.hpp中定义了路径类   a 支持多种编码格式,包括uni

2015-05-21 10:07:28 782

转载 C++学习 boost学习之-Thread

要点:1 线程对象不可以复制,但是可以转移;2 当线程对象析构时,线程变为detached,但线程并未结束;也可以通过detach()方法来显示的detached;3 等待线程结束,可以用join() or timed_join()方法;4 可以调用interrupt()方法结束一个线程,线程会在运行到interruption points时抛出boost::thread_

2015-05-21 09:55:50 1008

转载 C++学习 boost学习之-Synchronization

要点:1 boost提供了如下lock模板类,以mutex类型作为模板参数Class templatelock_guardClass templateunique_lockClass templateshared_lockClass templateupgrade_lockClass templateupgrade_to_unique_lockMutex-spe

2015-05-21 09:37:22 533

转载 C++学习 boost学习之-生产者消费者问题例子

生产者消费者问题在线程编程中是基础问题,很重要,很多其他问题的解决都通过扩展该问题的解决方法来解决的;boost中的一个例子是这样写的,很简洁;所以boost很强大,屏蔽掉了很多繁琐的问题;#include #include #include #include #include class bounded_buffer : private boost::noncop

2015-05-21 09:34:20 1812

转载 C++学习 boost::apply_visitor说明

函数 apply_visitorboost::apply_visitor — 将给定的访问者应用到给定的 variant 的内容上,该过程在编译期进行类型安全检查,以确认所有类型均被访问者所处理。摘要templatetypename Visitor, typename Variant>   typename Visitor::result_type   appl

2015-05-21 09:12:20 9553

转载 C++学习 operator两种用法详解

转换函数的名称是类型转换的目标类型,因此,不必再为它指定返回值类型;转换函数是被用于本类型的数值或变量转换为其他的类型,也不必带参数 在写这篇文章之前,让我们先回顾一下编译器通过匹配过程确定调用哪一个函数的匹配顺序:(1)寻找和使用最符合函数名和参数类型(包括返回值)的函数,若找到则调用;(2)否则,寻找一个函数模板,将其实例化产生一个匹配的重载函数,若找到则调

2015-05-20 16:56:22 20105 3

转载 ceph存储 浅谈Ceph纠删码

目  录第1章 引言 1.1 文档说明 1.2 参考文档 第2章 纠删码概念和原理 2.1 概念 2.2 原理 第3章 CEPH纠删码介绍 3.1 CEPH纠删码用途 3.2 CEPH纠删码库 3.3 CEPH纠删码数据存储 3.3.1 编码块读写 3.3.2 间断全写 3.4 使用范围 3.4.1 冷数据 3.4.2 廉价多数据中心存储

2015-05-13 16:53:06 4275

转载 ceph存储 Ceph存储分层技术

目  录第1章 引言    1.1 文档说明    1.2 其他说明    第2章 分层存储概述    第3章 创建池    3.1 设置存储池    3.2 设置缓存池    第4章 创建缓存层    第5章 配置缓存层    5.1 目标的大小和类型    5.2 缓存大小    5.2.1 相对大小    5.2.2 绝对大小    5

2015-05-13 16:49:58 5662

转载 嵌入式 git revert和git reset的区别

原文:http://blog.csdn.net/koffuxu/article/details/6731876git revert 是撤销某次操作,此次操作之前的commit都会被保留git reset 是撤销某次提交,但是此次之后的修改都会被退回到暂存区具体一个例子,假设有三个commit, git st:commit3: add test3.ccommit2: ad

2015-05-11 14:08:30 548

转载 嵌入式 git fetch和git pull的区别

原文: http://www.tech126.com/git-fetch-pull/ Git中从远程的分支获取最新的版本到本地有这样2个命令:1. git fetch:相当于是从远程获取最新版本到本地,不会自动merge    git fetch origin mastergit log -p master..origin/mastergit merge origin/master

2015-05-11 14:07:53 525

osd bmp demo

我把部分代码摘到附件中了,FYI 多路码流添加osd的demo,可以下载,但请不要照搬代码,更不要随意传播,谢谢!

2015-06-25

boost中文手册C++

boost中文手册C++ boost库让我们更快、更好地使用C++进行大型系统或者服务器开发工作,提高工作效率,很值得一看!

2015-05-21

tracepoint_lttng使用详解

tracepoint_lttng使用详解,主要是对函数耗时进行定性的统计,对性能优化方案有着举足轻重的效果!LTTng 是一个 Linux 平台开源的跟踪工具,是一套软件组件,可允许跟踪 Linux 内核和用户程序,并控制跟踪会话(开始/停止跟踪、启动/停止事件 等等)。这些组件被绑定如下三个包: •LTTng-tools:库和用于跟踪会话的命令行接口 •LTTng-modules:允许用 LTTng 跟踪 Linux 的 Linux 内核模块 •LTTng-UST:用户空间跟踪库

2015-03-23

lz4-r127.tar.gz

这个源码很不好早,,在此提供给大家参考和使用

2015-03-10

oracle多实例创建和DataGuard配置DEMO

oracle多实例创建和DataGuard配置,欢迎下载,个人觉得还是很不错的哦

2015-03-05

多路径multipath配置文档和相关概念

一、什么是multipath 普通的电脑主机都是一个硬盘挂接到一个总线上,这里是一对一的关系。而到了有光纤组成的SAN环境,由于主机和存储通过了光纤交换机连接,这样的话,就构成了多对多的关系。也就是说,主机到存储可以有多条路径可以选择。主机到存储之间的IO由多条路径可以选择。

2015-01-07

paxos 算法 分析

很不错的paxos算法分析文档,值得一看,虽不能深入研究,但是可以初步了解!

2014-12-17

ceph-fs-rpm-build

对于,在redhat或者centos上进行建立rpm,可以说是一个必备的技能,由于项目需求,需要进行rpm包建立,故记录了rpm建立过程,供大家参考!

2014-12-08

centos7 ceph0.87

编译0.87版本ceph源码,并在centos7上成功搭建集群,并测试存储,包括相关rpms以及codes和最新ceph.conf

2014-11-24

vimrc_best

很好,我的用的很舒服,给大家看看,虽然我也从别的地方收集的,但是觉得对大家有帮助,所以分享一下!

2014-11-20

vimrc 配置文件

vimrc配置文件,精华配置,不错!

2014-11-20

centos_netcard_bonding

给大家分享一下,我成功配置的双网卡聚合的示例demo,其实就是相关的配置文件,只要放在对应的目录下就可以了

2014-11-19

Apache2-http-conf

Apache2-http-conf,可以实现在x86以及Linux下实现http上传或者下载服务

2014-10-24

aac+h264封装MP4

aac+h264封装MP4,适用于我们项目的平台,需要使用的朋友可以修改相关参数,有问题可以反馈给我skdkjxy@163.com,谢谢

2014-10-23

uboot-hi3518c配置表

uboot-hi3518c配置表(适用本项目平台),这是仅适用RMII 网络模式!

2014-10-09

一眼看出NALU中SPS与PPS与SEI与IDR与P帧

一眼看出NALU中SPS与PPS与SEI与IDR与P帧

2014-09-30

使用 libevent 和 libev 提高网络应用性能

使用 libevent 和 libev 提高网络应用性能

2014-09-28

odb示例DEMO

odb示例DEMO,仅供大家参考交流……

2014-09-28

C/C++面试题

经典嵌入式、笔试面试题目大全,这里包含了面试笔试的程序题目,和一些关键字的解析

2013-01-10

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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