自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(41)
  • 资源 (26)
  • 收藏
  • 关注

转载 iptables用户层实现解析

https://blog.csdn.net/yandaqijian/article/details/44415519https://blog.csdn.net/yandaqijian/article/details/44415839

2018-12-14 17:41:15 271

转载 linux 信号量

UNIX/Linux下信号量函数的使用。首先你得知道什么叫信号量,什么时候要用信号量。这个嘛,主要就是用来保护共享资源的,也就是说如果你想限制某个(些)资源在同一时刻只能有一(多)个线程拥有,就可以使用信号量。当然也可以用作让一个线程等待另一个线程完成某项工作。 用下面一组函数(系统调用)来实现。int sem_init(sem_t *sem,int pshared,unsigned int ...

2018-05-02 10:37:41 161

转载 zip文件格式

http://blog.csdn.net/xiaobing1994/article/details/78367035http://blog.csdn.net/a200710716/article/details/51644421

2018-03-14 21:13:58 881

转载 zlib用法简单说明

转自:http://blog.csdn.net/querw/article/details/1452041本文的目的是: 简单说明如何把zlib加入到MFC程序中,提供内存压缩功能.1. 如何获得zlibzlib的主页是:http://www.zlib.net/2. 用VC++6.0打开把下载的源代码解压打开,VC6.0的工程已经建好了,在/projects/visualc6. 双击zlib.ds...

2018-03-13 20:05:51 1337

转载 linux 原子操作

深入分析Volatile的实现原理引言在多线程并发编程中synchronized和Volatile都扮演着重要的角色,Volatile是轻量级的synchronized,它在多处理器开发中保证了共享变量的“可见性”。可见性的意思是当一个线程修改一个共享变量时,另外一个线程能读到这个修改的值。它在某些情况下比synchronized的开销更小,本文将深入分析在硬件层面上I

2018-01-03 16:43:56 254

转载 linux动态库的查找顺序

1.首先查看程序文件的.dynamic 段是否包含了一个叫DT_RPATH的项(它是一个以冒号分隔的库文件搜索目录列表)。   怎么设置这个选项?   需要在编译连接程序的时候使用-Wl,-rpath选项,假设一个程序test需要使用liblib.so库,如下所示进行编译连接:g++ -o test -L. -llib -Wl,rpath=./ test.cpp

2017-09-30 10:55:45 1366

原创 Android 入门资料汇总

废话不多说,学习Android前,先把学习中可能用到的资料坐下汇总,待用到时有所依据。1.有哪些 Android 大牛的 blog 值得推荐?这个是从知乎上看到的,感觉不错,以此Markhttps://www.zhihu.com/question/197759812.秋风的博客http://blog.csdn.net/tangcheng_ok3.张兴

2017-07-26 09:12:19 166

原创 cjson使用基础

以下内容转自菜博士的博客,具体博客地址不详。cJSON简介:JSON(JavaScriptObject Notation)是一种轻量级的数据交换格式。它基于JavaScript的一个子集。JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯。这些特性使JSON成为理想的数据交换语言。易于人阅读和编写,同时也易于机器解析和生成。cJSON是一个超轻巧,

2017-07-14 17:17:59 286

原创 qt入门教程收集

在工作中接触了一点Qt的东西,打算抽时间系统性的学习一下,目前菜鸟一枚,先收集一下别人的学习笔记,以后学习时拿来参考。我的Qt5学习之路  http://www.cnblogs.com/jingliming/p/4936758.htmlQt学习之路2   https://www.devbean.net/2012/08/qt-study-road-2-catelog/Qt

2017-07-13 16:30:34 223

转载 Libevent源码分析-----bufferevent工作流程探究

转载请注明出处:http://blog.csdn.net/luotuo44/article/details/39344743        和之前的《Libevent工作流程探究》一样,这里也是用一个例子来探究bufferevent的工作流程。具体的例子可以参考《Libevent使用例子,从简单到复杂》,这里就不列出了。其实要做的例子也就是bufferevent_socket_ne

2017-06-07 09:37:37 404

转载 Libevent源码分析-----更多evbuffer操作函数

转载请注明出处:http://blog.csdn.net/luotuo44/article/details/39325447锁操作:        在前一篇博文可以看到很多函数在操作前都需要对这个evbuffer进行加锁。同event_base不同,如果evbuffer支持锁的话,要显式地调用函数evbuffer_enable_locking。[cpp]

2017-06-07 09:37:00 262

转载 Libevent源码分析-----evbuffer结构与基本操作

转载请注明出处:http://blog.csdn.net/luotuo44/article/details/39290721                        对于非阻塞IO的网络库来说,buffer几乎是必须的。Libevent在1.0版本之前就提供了buffer功能。现在来看一下Libevent的buffer。buffer相关结构体:        Libe

2017-06-07 09:35:58 278

转载 Libevent源码分析-----连接监听器evconnlistener

转载请注明出处:http://blog.csdn.net/luotuo44/article/details/38800363使用evconnlistener:        基于event和event_base已经可以写一个CS模型了。但是对于服务器端来说,仍然需要用户自行调用socket、bind、listen、accept等步骤。这个过程有点繁琐,为此在2.0.2-al

2017-06-07 09:35:05 283

转载 Libevent源码分析-----通用类型和函数

转载请注明出处:http://blog.csdn.net/luotuo44/article/details/38780157        Libevent定义了一系列的可移植的兼容类型和函数。这使得在各个系统上都有一致的效果,Libevent一般都会在兼容通用类型和函数的前面加上ev或evutil前缀。        在实现上,Libevent都是使用条件编译+宏定义的方

2017-06-06 21:15:12 304

转载 Libevent源码分析-----与event相关的一些函数和操作

转载请注明出处: http://blog.csdn.net/luotuo44/article/details/38739549           Libevent提供了一些与event相关的操作函数和操作。本文就重点讲一下这方面的源代码。         在Libevent中,无论是event还是event_base,都是使用指针而不会使用变量。实际上,如果查看Libev

2017-06-06 21:14:05 240

转载 Libevent源码分析-----管理超时event

转载请注明出处: http://blog.csdn.net/luotuo44/article/details/38678333        前面的博文已经说到,如果要对多个超时event同时进行监听,就要对这些超时event进行集中管理,能够方便地(时间复杂度小)获取、加入、删除一个event。        在之前的Libevent版本,Libevent使用小根堆管理这

2017-06-06 21:12:47 357

转载 Libevent源码分析-----Libevent时间管理

转载请注明出处: http://blog.csdn.net/luotuo44/article/details/38661787基本时间操作函数:        Libevent采用的时间类型是struct  timeval,这个类型在很多平台都提供了。此外,Libevent还提供了一系列的时间操作函数。比如两个struct timeval相加、相减、比较大小。有些平台直接提

2017-06-06 21:11:46 275

转载 Libevent源码分析-----超时event的处理

转载请注明出处: http://blog.csdn.net/luotuo44/article/details/38637671如何成为超时event:                Libevent允许创建一个超时event,使用evtimer_new宏。[cpp] view plain copy //event.h文件  #define e

2017-06-06 21:10:54 339

转载 Libevent源码分析-----evthread_notify_base通知主线程

转载请注明出处: http://blog.csdn.net/luotuo44/article/details/38556059        一般来说,是主线程执行event_base_dispatch函数。本文也是如此,如无特别说明,event_base_dispatch函数是由主线程执行的。notify的理由:        本文要说明的问题是,当主线程在执

2017-06-06 21:09:51 447

转载 Libevent源码分析-----信号event的处理

转载请注明出处:http://blog.csdn.net/luotuo44/article/details/38538991信号event的工作原理:        前面讲解了Libevent如何监听一个IO事件,现在来讲一下Libevent如何监听信号。Libevent对于信号的处理是采用统一事件源的方式。简单地说,就是把信号也转换成IO事件,集成到Libevent中。   

2017-06-06 21:08:30 322

转载 Libevent源码分析-----event优先级设置

转载请注明出处: http://blog.csdn.net/luotuo44/article/details/38512719        event_base允许用户对它里面的event设置优先级,这样可以使得有些更重要的event能够得到优先处理。        Libevent实现优先级功能的方法是:用一个激活队列数组来存放激活event。即数组的元素是一个激活队列

2017-06-06 21:06:21 248

转载 Libevent源码分析-----Libevent工作流程探究

转载请注明出处:http://blog.csdn.net/luotuo44/article/details/38501341        之前的博文讲了很多Libevent的基础构件,现在以一个实际例子来初步探究Libevent的基本工作流程。由于还有很多Libevent的细节并没有讲所以,这里的探究还是比较简洁,例子也相当简单。[cpp] view plain

2017-06-06 21:02:08 182

转载 Libevent源码分析-----跨平台Reactor接口的实现

转载请注明出处: http://blog.csdn.net/luotuo44/article/details/38458469        之前的博文讲了怎么实现线程、锁、内存分配、日志等功能的跨平台。Libevent最重要的跨平台功能还是实现了多路IO接口的跨平台(即Reactor模式)。这使得用户可以在不同的平台使用统一的接口。这篇博文就是来讲解Libevent是怎么实现

2017-06-06 21:00:56 244

转载 Libevent源码分析-----配置event_base

转载请注明出处: http://blog.csdn.net/luotuo44/article/details/38443569        前面的博文都是讲一些Libevent的一些辅助结构,现在来讲一下关键结构体:event_base。         这里作一个提醒,在阅读Libevent源码时,会经常看到backend这个单词。其直译是“后端”。实际上其指的是L

2017-06-06 21:00:00 171

转载 Libevent源码分析-----event_signal_map

转载请注明出处: http://blog.csdn.net/luotuo44/article/details/38424173相关结构体:                因为event_signal_map结构体实在太简单了,所以不像event_io_map那样,有一个专门的文件。由于没有专门的文件,那么只能从蛛丝马迹上探索这个event_signal_map结构了。 

2017-06-06 20:58:39 168

转载 Libevent源码分析-----event_io_map哈希表

转载请注明出处: http://blog.csdn.net/luotuo44/article/details/38403241        上一篇博客说到了TAILQ_QUEUE队列,它可以把多个event结构体连在一起。是一种归类方式。本文也将讲解一种将event归类、连在一起的结构:哈希结构。哈希结构体:        哈希结构由下面几个结构体一起配合工作

2017-06-06 20:56:25 240

转载 Libevent源码分析-----TAILQ_QUEUE队列

转载请注明出处: http://blog.csdn.net/luotuo44/article/details/38374009        Libevent源码中有一个queue.h文件,位于compat/sys目录下。该文件里面定义了5个数据结构,其中TAILQ_QUEUE是使得最广泛的。本文就说一下这个数据结构。队列结构体:        TAILQ_QU

2017-06-06 20:55:03 228

转载 Libevent源码分析-----多线程、锁、条件变量(二)

转载请注明出处: http://blog.csdn.net/luotuo44/article/details/38360525Debug锁操作:               Libevent还支持对锁操作的一些检测,进而捕抓一些典型的锁错误。Libevent检查:解锁自己(线程)没有持有的锁在未解锁前,自己(线程)再次锁定一个非递归锁。        L

2017-06-06 20:53:52 244

转载 Libevent源码分析-----多线程、锁、条件变量(一)

转载请注明出处: http://blog.csdn.net/luotuo44/article/details/38350633        Libevent提供给用户的可见多线程API都在thread.h文件中。在这个文件提供的API并不多。基本上都是一些定制函数,像前面几篇博文说到的,可以为Libevent定制用户自己的多线程函数。开启多线程:       

2017-06-06 20:52:53 218

转载 Libevent源码分析-----内存分配

转载请注明出处: http://blog.csdn.net/luotuo44/article/details/38334979        Libevent的内存分配函数还是比较简单的,并没有定义内存池之类的东西。如同前一篇博客那样,给予Libevent库的使用者充分的设置权(定制),即可以设置用户(Libevent库的使用者)自己的内存分配函数。至于怎么分配,主动权在于用户

2017-06-06 20:51:32 196

转载 Libevent源码分析-----日志和错误处理

转载请注明出处: http://blog.csdn.net/luotuo44/article/details/38317797日志处理:        在Libevent的源码中,经常会见到形如event_warn、event_msgx、event_err之类的函数。这通常出现在代码中一些值是不合理时。这些函数就是Libevent的日志函数。它能把这些不合理的情况打

2017-06-06 20:50:06 241

转载 Libevent源码分析-----event-config.h指明所在系统的环境

转载请注明出处: http://blog.csdn.net/luotuo44/article/details/38300965        如果你打开Libevent的一些文件,比如util.h文件。就会发现使用了很多宏定义,并根据一些宏定义而进行条件编译。这些宏定义往往来自event-config.h文件中。        如util.h文件的代码开始处:[

2017-06-06 20:47:53 298

转载 Libevent源码分析-----开篇

转载请注明出处: http://blog.csdn.net/luotuo44/article/details/38300779        我所分析的Libevent版本是2.0.21版本,是目前最新的稳定版本。看这系列博文中,需要读者有Linux编程的一些基础。因为像POSIX、文件描述符、多线程等等这些概念,我并不会去解释,我默认读者已经熟悉这些概念了。如果读者读过《UN

2017-06-06 20:46:27 204

转载 iptables中DNAT、SNAT和MASQUERADE的原理

DNAT(Destination Network Address Translation,目的地址转换) 通常被叫做目的映谢。而SNAT(Source Network Address Translation,源地址转换)通常被叫做源映谢。这是我们在设置Linux网关或者防火墙时经常要用来的两种方式。以前对这两个都解释得不太清楚,现在我在这里解释一下。首先,我们要了解一下IP包的结构,如下图

2017-05-18 11:27:28 1743

转载 用netlink API与内核通信

原文地址:http://blog.csdn.net/lovekatherine/article/details/1539267Why and How to Use Netlink Socket作者:Kevin He,2005-01-05原文地址:http://www.linuxjournal.com/article/7356 译者:Love. Katherine,2007-

2017-05-18 11:08:52 696

转载 Wireless tools for Linux介绍

Wireless tools for Linux是一个Linux命令行工具包,用来设置支持Linux Wireless Extension的无线设备。Wireless tools for Linux 和 Linux Wireless Extension 由 Jean Tourrilhes在维护,由Hewlett-Packard(HP惠普)赞助。大多数基于Linux内核的操作系统都包含W

2017-05-18 11:06:26 442

转载 iptables中文man手册

总览用iptables -ADC 来指定链的规则,-A添加 -D删除 -C 修改iptables - [RI] chain rule num rule-specification[option]用iptables - RI 通过规则的顺序指定iptables -D chain rule num[option]删除指定规则iptables -[LFZ] [chain][o

2017-05-18 10:56:09 765

转载 IPtables中SNAT、DNAT和MASQUERADE的含义

IPtables中可以灵活的做各种网络地址转换(NAT),网络地址转换主要有两种:SNAT和DNAT。SNAT是source networkaddress translation的缩写,即源地址目标转换。比如,多个PC机使用ADSL路由器共享上网,每个PC机都配置了内网IP,PC机访问外部网络的时候,路由器将数据包的报头中的源地址替换成路由器的ip,当外部网络的服务器比如网站web服务器接到访

2017-05-18 10:48:43 266

原创 网络协议综述

之前在这方面接触甚少,TCP、UDP 倒是用过一些。       现在工作中难免遇到网络协议相关的东西。在这里建个标签,后续把自己学习各种网络协议的心得贴出来,供大家分享。

2015-09-12 16:30:44 425

原创 二维码原理与生成细节

二维码存在多种编码格式,不同编码格式的原理与生成方式均有差异,本文分别对其进行描述:1.QR二维码    下面这篇文章不错, http://coolshell.cn/articles/10590.html2.其他码制   待续

2015-09-11 09:03:05 566

linux下几种安全存储对比

linux下几种安全存储对比

2021-08-09

whitbox使用记录

whitbox使用记录

2021-07-06

config-tools.zip

linux vim配置和代码阅读配置

2021-05-23

IC卡卡片应答数据详解.pdf

IC卡卡片应答数据详解

2019-10-04

STM32F10x_AN2594_FW_V3.1.0优化(FLASH模拟EEPROM).zip

使用STM32 flash模拟EEPROM 使用STM32 flash模拟EEPROM

2019-10-04

unix-elf-file-format.pdf

unix-elf-file-format

2019-10-04

软件测试.pdf

软件测试 1.为什么要测试 2.怎么测试 3.测试的目的 4.测试的方法

2019-10-04

磁卡的标准信息格式.pdf

磁卡的标准信息格式

2019-10-04

picture_remap

使用opencv对图片做重映射(一种对比图片相似度的方法)

2019-10-04

keypointer.zip

两种使用opencv对图片做关键点检测的示例代码(可用于做图片相似度对比)

2019-10-04

corner.cpp

使用opencv对图片进行角点检测(可做为一种图片相似度比对的方法)

2019-10-04

laplace.cpp

使用opencv对图片做拉普拉斯变换 使用opencv对图片做拉普拉斯变换

2019-10-04

HanmingDistance.cpp

使用opencv计算两张图片的汉明距离,得到两张图片的相似度数据

2019-10-04

SPI总线协议及SPI时序图详解.pdf

SPI总线协议及SPI时序图详解 SPI总线协议及SPI时序图详解

2019-10-04

I2C和SPI总线.ppt

IIC和SPI总线介绍 IIC和SPI总线介绍 IIC和SPI总线介绍

2019-10-04

IIC总线通讯协议详解.ppt

IIC总线通信协议详解 IIC总线通信协议详解 IIC总线通信协议详解

2019-10-04

C语言经典例题100.pdf

C语言经典例题100

2019-10-04

SPI-Interface_AppNote_(UBX-13001919).pdf

SPI-Interface_AppNote_(UBX-13001919) SPI-Interface_AppNote_(UBX-13001919)

2019-10-04

MP2629.pdf

MP2629充电IC数据手册

2019-10-04

bq25895.pdf

BQ25895充电IC数据手册

2019-10-04

win10_rndis_driver.zip

win10 rndis driver 在win10系统中接入rndis设备时往往不能枚举出正确的设备,需要手动安装驱动。windows官网上有此问题的说明,手动安装附件的驱动即可解决问题。

2019-10-04

ARM_Cortex_M0_instructions.pdf

ARM Cortex M0 instructions set ARM Cortex M0 instructions set

2019-10-04

ARM FDPIC Toolchains.pdf

ARM FDPIC Toolchain and ABI How to use PLT and GOT

2019-10-04

linux-内存及flash使用情况查询.pdf

不依赖于proc文件系统的情况下查询系统当前内存和flash使用情况

2019-10-04

C和C++常用工具类代码.pdf

基本链表 红黑树 队列 哈希表 json文件编解码 fifo 轻量级数据库

2019-10-04

RNDIS共享windows网络连接.pdf

RNDIS共享windows网络连接 1.内核驱动配置 2.驱动加载顺序 3.网络设置

2019-10-04

ST7789S_SPEC_V1 3.pdf

LCD控制器ST7789S资料

2019-10-04

空空如也

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

TA关注的人

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