自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

我的博客

每天一小步

转载 用Makefile管理Java项目

用Makefile管理Java项目 目录 用Makefile管理Java项目 为什么用makefile 我在Java项目中通用的makefile 用法 TODO: 参考 为什么用makefile make是我最喜欢的Unix工具之一,通过makefile,它可以做许多自动化的事 ...

2018-10-30 10:49:51 2154 0

转载 【C++模版之旅】神奇的Traits

介绍traits的文章很多,但感觉大部分文章的说明都很晦涩难懂,把一个并不很复杂的C++模板的应用描述的过于复杂。忍不住想把自己的理解跟大家分享一下,或许我也只是掌握了一点traits的皮毛而已,但也希望这些皮毛能略微抓住你的眼球,带给你一些启发。 首先,介绍traits前,回味一下C++的模板...

2018-10-22 14:06:13 430 0

转载 从4行代码看右值引用 [转载]

从4行代码看右值引用 概述   右值引用的概念有些读者可能会感到陌生,其实他和C++98/03中的左值引用有些类似,例如,c++98/03中的左值引用是这样的: int i = 0; int& j = i;   这里的int&是对左值进行绑定(但是int&...

2018-10-18 09:29:37 226 0

转载 Linux命令行下”!”的十个神奇用法

Linux 系统中,“!” 符号或者操作符通常被用做逻辑否定的操作符,同时也通过一些调整和改动命令来从历史记录中找出你需要的命令行。下面演示的命令行在bash Shell中都已经明确检查过可用了。不过我没有在其他的 Shell 解释器下测试过,不过我相信这些命令也不会在其他的解释器下运行。那么现在...

2018-08-15 17:42:30 758 0

原创 c++ array模板类使用

目录 1、array模板类的定义 (1)array模板类的声明 (2)容器属性 (3)array模板类的说明 (4)array模板类头文件 2、array模板类的使用 (1)Iterators (2)Capacity (3)Element access (4)Modifiers...

2018-08-10 17:47:13 23601 0

转载 C++ string的用法和例子 [转载]

  c++ string使用场合 string是C++标准库的一个重要的部分,主要用于字符串处理。可以使用输入输出流方式直接进行操作,也可以通过文件等手段进行操作。同时C++的算法库对string也有着很好的支持,而且string还和c语言的字符串之间有着良好的接口。虽然也有一些弊端,但是瑕不...

2018-08-10 15:22:35 164 0

转载 高并发下线程安全的单例模式 [转载]

在所有的设计模式中,单例模式是我们在项目开发中最为常见的设计模式之一,而单例模式有很多种实现方式,你是否都了解呢?高并发下如何保证单例模式的线程安全性呢?如何保证序列化后的单例对象在反序列化后任然是单例的呢?这些问题在看了本文之后都会一一的告诉你答案,赶快来阅读吧! 什么是单例模式? 在文章开...

2018-08-10 13:46:37 112 0

转载 repo使用

repo使用 repo使用 1、repo介绍 1.1 清单库文件介绍 1.2 下载repo代码 2、repo常用指令 2.1 repo init (下载repo并克隆manifest) 2.2 repo sync(下载代码) 2.3 repo start(创建并切换分支) 2.4 r...

2018-08-03 11:18:17 1097 0

转载 Gitlab的使用 [转载]

最近成功的在公司部署了gitlab,鉴于同学们还不会使用,这里写篇博客说明下。如果想安装gitlab的话,需要一些linux的基础知识,我在这里记录了我安装的参考《http://www.cnbluebox.com/?p=378》 1.什么是git 鉴于有同学还没用过git,就先介绍一下git吧...

2018-08-03 10:32:42 154 0

转载 Python实现设置终端显示颜色、粗体、下划线等效果 [转载]

也许你希望在终端上输出一些带有颜色或者粗体、下划线等样式的信息,就像man中的那样,那么这篇文章将会起到些许作用。 事件起因 在Python开发项目过程中,为了方便调试代码,经常会向stdout中输出一些日志,默认的这些日志就直接显示在了终端中。 但是很杂乱的信息显示在一起,往往没有重点,一...

2018-08-02 14:43:34 1197 0

转载 fatal error: sys/cdefs.h解决方案

fatal error: sys/cdefs.h解决方案 fatal error: sys/cdefs.h解决方案 问题描述 解决方法 问题描述 fatal error: sys/cdefs.h: No such file or directory 解决方法 ...

2018-08-01 17:13:10 4809 0

原创 关于C++模板函数声明与定义的问题

关于C++模板函数声明与定义的问题 关于C++模板函数声明与定义的问题 模板函数出现的问题 模板函数问题解决 模板函数出现的问题 今天在写代码的时候,发现了一个关于模板函数的问题。如下所示, demo.h代码 #ifndef DEMO_H #define DEMO...

2018-07-22 21:59:37 7759 0

转载 老生常谈,正确使用memset [转载]

老生常谈,正确使用memset 老生常谈,正确使用memset 1、memset是以字节为单位,初始化内存块。 2、当结构体类型中包含指针时,在使用memset初始化时需要小心。 3、当结构体或类的本身或其基类中存在虚函数时,也需要谨慎使用memset。 前段项目中发现...

2018-07-18 20:02:06 485 0

转载 跟我一起学习VIM - The Life Changing Editor [转载]

 前两天同事让我在小组内部分享一下VIM,于是我花了一点时间写了个简短的教程。虽然准备有限,但分享过程中大家大多带着一种惊叹的表情,原来编辑器可以这样强大,这算是对我多年来使用VIM的最大鼓舞吧。所以分享结束之后,将这篇简短教程整理一下作为我2014年的第一篇Blog。目录写在前面:Life Ch...

2018-07-13 16:00:21 149 0

转载 vim中使用正则表达式 [转载]

一、使用正则表达式的命令使用正则表达式的命令最常见的就是 / (搜索)命令。其格式如下:/正则表达式另一个很有用的命令就是 :s(替换)命令,将第一个//之间的正则表达式替换成第二个//之间的字符串。:s/正则表达式/替换字符串/选项在学习正则表达式时可以利用 / 命令来练习。二、元字符元字符是具...

2018-07-12 11:30:30 440 0

转载 Linux 字符设备驱动结构(四)—— file_operations 结构体知识解析[转载]

        前面在 Linux 字符设备驱动开发基础 (三)—— 字符设备驱动结构(中) ,我们已经介绍了两种重要的数据结构 struct inode{...}与 struct file{...} ,下面来介绍另一个比较重要数据结构struct _file_operationsstruct _...

2018-07-09 00:14:04 103 0

转载 Linux 字符设备驱动结构(三)—— file、inode结构体及chardevs数组等相关知识解析[转载]

       前面我们学习了字符设备结构体cdev Linux 字符设备驱动开发 (一)—— 字符设备驱动结构(上)  下面继续学习字符设备另外几个重要的数据结构。       先看下面这张图,这是Linux 中虚拟文件系统、一般的设备文件与设备驱动程序值间的函数调用关系;        上面这张...

2018-07-09 00:12:11 138 0

转载 Linux 字符设备驱动结构(二)—— 自动创建设备节点[转载]

      上一篇我们介绍到创建设备文件的方法,利用cat /proc/devices查看申请到的设备名,设备号。第一种是使用mknod手工创建:mknod filename type major minor第二种是自动创建设备节点:利用udev(mdev)来实现设备文件的自动创建,首先应保证支持...

2018-07-09 00:09:26 86 0

转载 Linux 字符设备驱动结构(一)—— cdev 结构体、设备号相关知识解析[转载]

一、字符设备基础知识1、设备驱动分类      linux系统将设备分为3类:字符设备、块设备、网络设备。使用驱动程序:字符设备:是指只能一个字节一个字节读写的设备,不能随机读取设备内存中的某一数据,读取数据需要按照先后数据。字符设备是面向流的设备,常见的字符设备有鼠标、键盘、串口、控制台和LED...

2018-07-09 00:05:06 119 0

转载 玩转Google开源C++单元测试框架Google Test系列(gtest)之八 - 打造自己的单元测试框架 [转载]

一、前言上一篇我们分析了gtest的一些内部实现,总的来说整体的流程并不复杂。本篇我们就尝试编写一个精简版本的C++单元测试框架:nancytest ,通过编写这个简单的测试框架,将有助于我们理解gtest。二、整体设计使用最精简的设计,我们就用两个类,够简单吧:1. TestCase类包含单个测...

2018-07-03 12:10:58 119 0

转载 玩转Google开源C++单元测试框架Google Test系列(gtest)之七 - 深入解析gtest [转载]

一、前言“深入解析”对我来说的确有些难度,所以我尽量将我学习到和观察到的gtest内部实现介绍给大家。本文算是抛砖引玉吧,只能是对gtest的整体结构的一些介绍,想要了解更多细节最好的办法还是看gtest源码,如果你看过gtest源码,你会发现里面的注释非常的详细!好了,下面就开始了解gtest吧...

2018-07-03 12:09:23 99 0

转载 玩转Google开源C++单元测试框架Google Test系列(gtest)之六 - 运行参数 [转载]

一、前言使用gtest编写的测试案例通常本身就是一个可执行文件,因此运行起来非常方便。同时,gtest也为我们提供了一系列的运行参数(环境变量、命令行参数或代码里指定),使得我们可以对案例的执行进行一些有效的控制。二、基本介绍前面提到,对于运行参数,gtest提供了三种设置的途径:1. 系统环境变...

2018-07-03 12:08:01 316 0

转载 玩转Google开源C++单元测试框架Google Test系列(gtest)之五 - 死亡测试 [转载]

一、前言 “死亡测试”名字比较恐怖,这里的“死亡”指的的是程序的崩溃。通常在测试过程中,我们需要考虑各种各样的输入,有的输入可能直接导致程序崩溃,这时我们就需要检查程序是否按照预期的方式挂掉,这也就是所谓的“死亡测试”。gtest的死亡测试能做到在一个安全的环境下执行崩溃的测试案例,同时又对崩溃...

2018-07-03 12:06:45 102 0

转载 玩转Google开源C++单元测试框架Google Test系列(gtest)之四 - 参数化 [转载]

一、前言在设计测试案例时,经常需要考虑给被测函数传入不同的值的情况。我们之前的做法通常是写一个通用方法,然后编写在测试案例调用它。即使使用了通用方法,这样的工作也是有很多重复性的,程序员都懒,都希望能够少写代码,多复用代码。Google的程序员也一样,他们考虑到了这个问题,并且提供了一个灵活的参数...

2018-07-03 12:05:29 104 0

转载 玩转Google开源C++单元测试框架Google Test系列(gtest)之三 - 事件机制 [转载]

一、前言gtest提供了多种事件机制,非常方便我们在案例之前或之后做一些操作。总结一下gtest的事件一共有3种:1. 全局的,所有案例执行前后。2. TestSuite级别的,在某一批案例中第一个案例前,最后一个案例执行后。3. TestCase级别的,每个TestCase前后。二、全局事件要实...

2018-07-03 12:04:08 202 0

转载 玩转Google开源C++单元测试框架Google Test系列(gtest)之二 - 断言 [转载]

一、前言这篇文章主要总结gtest中的所有断言相关的宏。 gtest中,断言的宏可以理解为分为两类,一类是ASSERT系列,一类是EXPECT系列。一个直观的解释就是:1. ASSERT_* 系列的断言,当检查点失败时,退出当前函数(注意:并非退出当前案例)。 2. EXPECT_* 系列的断言,...

2018-07-03 12:02:54 90 0

转载 玩转Google开源C++单元测试框架Google Test系列(gtest)之一 - 初识gtest [转载]

1.The first sample: sample1 你把github上的项目导来之后,github地址:https://github.com/google/googletest,在目录:..(你的目录)\googletest-master\googletest\samples是你的sample...

2018-07-03 10:40:31 89 0

转载 Google C++单元测试框架---Gtest框架简介(译文)[转载]

一、设置一个新的测试项目  在用google test写测试项目之前,需要先编译gtest到library库并将测试与其链接。我们为一些流行的构建系统提供了构建文件: msvc/ for Visual Studio, xcode/ for Mac Xcode, make/ for GNU make...

2018-07-03 10:35:48 84 0

转载 [Data Structure & Algorithm] 七大查找算法

阅读目录1. 顺序查找2. 二分查找3. 插值查找4. 斐波那契查找5. 树表查找6. 分块查找7. 哈希查找  查找是在大量的信息中寻找一个特定的信息元素,在计算机应用中,查找是常用的基本运算,例如编译程序中符号表的查找。本文简单概括性的介绍了常见的七种查找算法,说是七种,其实二分查找、插值查找...

2018-05-16 14:23:07 156 0

转载 [Data Structure & Algorithm] 八大排序算法

阅读目录1. 直接插入排序(Straight Insertion Sort)2. 希尔排序(Shells Sort)3. 直接选择排序(Straight Selection Sort)4. 堆排序(Heap Sort)5. 冒泡排序(Bubble Sort)6. 快速排序(Quick Sort)7...

2018-05-16 14:19:15 245 0

原创 Selenium + PhantomJS使用报错

Selenium + PhantomJS使用报错 目录 Selenium + PhantomJS使用报错 目录 PhantomJS使用报错 PhantomJS报错分析 PhantomJS报错解决方案 1、Selenuim版本降级 2、使用 headless versions of Ch...

2018-05-08 10:30:09 1241 1

转载 理解Android编译命令

工欲善其事,必先利其器,对于想要深入学习Android源码,必须先掌握Android编译命令.一、引言关于Android Build系统,这个话题很早就打算整理下,迟迟没有下笔,决定跟大家分享下。先看下面几条指令,相信编译过Android源码的人都再熟悉不过的。source /opt/androi...

2018-05-07 16:46:19 509 0

转载 流行的浏览器User-Agent大全

一、基础知识篇:Http Header之User-Agent    User Agent中文名为用户代理,是Http协议中的一部分,属于头域的组成部分,User Agent也简称UA。它是一个特殊字符串头,是一种向访问网站提供你所使用的浏览器类型及版本、操作系统及版本、浏览器内核、等信息的标识。通...

2018-05-05 17:10:29 649 0

转载 Python正则表达式指南

本文介绍了Python对于正则表达式的支持,包括正则表达式基础以及Python正则表达式标准库的完整介绍及使用示例。本文的内容不包括如何编写高效的正则表达式、如何优化正则表达式,这些主题请查看其他教程。注意:本文基于Python2.4完成;如果看到不明白的词汇请记得百度谷歌或维基,whatever...

2018-05-01 17:35:09 82 0

转载 Ubuntu16.04手动安装MongoDB

注意事项:仔细按步骤阅读操作注意别写错字一、用自带的火狐浏览器下载Ubuntu 16.04 Linux 64-bit x641、地址:http://www.mongodb.org/downloads 2、选择linux选项卡,再在下拉框中选中Ubuntu 16.04 Linux 64-bit x6...

2018-04-29 15:09:26 176 0

转载 Python PEP8 编码规范

原文链接:http://legacy.python.org/dev/peps/pep-0008/itemdetailPEP8TitleStyle Guide for Python CodeVersionc451868df657Last-Modified2016-06-08 10:43:53 -04...

2018-04-21 17:49:33 311 0

转载 ubuntu16.04下sublime text3安装和配置

1.安装方法1)使用ppa安装sudo add-apt-repository ppa:webupd8team/sublime-text-3sudo apt-get updatesudo apt-get install sublime-text-installer卸载 sublime text 命令...

2018-04-20 10:31:08 8332 0

转载 Learn UML with JUDE

我希望你能够使用JUDE去学习和体验UML,JUDE是一个建模工具,你可以用它去画UML。下面我会指导你通过一些实例去学习使用JUDE来画UML。一、Overview      l    UML and UML toolsl    Description of JUDEl    Installat...

2018-03-13 10:34:30 188 0

转载 Android Binder设计与实现 - 设计篇

摘要Binder是Android系统进程间通信(IPC)方式之一。Linux已经拥有管道,system V IPC,socket等IPC手段,却还要倚赖Binder来实现进程间通信,说明Binder具有无可比拟的优势。深入了解Binder并将之与传统IPC做对比有助于我们深入领会进程间通信的实现和...

2018-03-12 09:58:27 141 0

原创 Python实现TFTP

一、TFTP协议简单介绍 1、定义 TFTP(Trivial File Transfer Protocol):简单文件传输协议)。 TFTP是TCP/IP协议族中的一个用来在客户端与服务器之间进行简单文件传输的协议,传输不复杂、开销不大的文件。端口号固定为69。 TFTP是一个传输文件...

2017-12-12 14:23:44 4770 0

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