自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

施工中请绕行

没有什么事情是做不成的,只要你真的想做

  • 博客(153)
  • 资源 (6)
  • 收藏
  • 关注

原创 关于android System.loadLibrary阻塞问题的分析

上周客户反馈SDK在某些早期型号的安卓智能电视上加载有卡死的现象发生,已知可以稳定复现问题的设备型号如下:长虹 C2000i 长虹 C3000i 长虹 C5000i 创维 Skyworth 8K56 E380S 创维 Skyworth 8K55 E680 联想 ideatv A21 TCL Generic Android on mt5880我们通过SDK端的上报数据分析,发现出...

2018-04-14 14:47:36 4818

转载 rtmp复杂握手

一、握手:1、C0:C—>S2、S0: S—>C        名称:C0 S0        长度:1字节        对于版本号的定义:当前rtmp协议的版本号一致为“3”,0、1、2是旧版本号,已经弃用。4-31被保留为rtmp协议的未来实现版本使用;32-255不允许使用。如果服务器端或者客户端收到的C0字段解析出为非03,如果是0x06考虑使用o

2016-07-01 21:54:59 3732

原创 protobuf-2.6.1 iOS静态库编译

最近的终端项目中用到了protobuf进行数据序列化,需要将protobuf编译成静态库,下面是编译过程,笔者编译的版本是protobuf-2.6.1在Xcode中建立静态库工程,将protobuf源码加入工程中删除所有包含unittest名称的源文件,删除compiler下的所有源文件完成上述操作后直接编译会报如下错误报错原

2016-03-01 19:32:24 2013 1

转载 Nginx slab内存管理

本文转载自: http://blog.csdn.net/qifengzou1 引言  众所周知,操作系统使用伙伴系统管理内存,不仅会造成大量的内存碎片,同时处理效率也较低下。SLAB是一种内存管理机制,其拥有较高的处理效率,同时也有效的避免内存碎片的产生,其核心思想是预分配。其按照SIZE对内存进行分类管理的,当申请一块大小为SIZE的内存时,分配器就从SIZE集合中分配一个内

2015-11-13 19:28:30 840

原创 C99标准文法注释

最近业余时间在搞一个针对C语言的语义级别的智能提示插件,用于实现类似于Xcode或VisualStudio等IDE的代码自动补全,实时语义检测等功能,设计目标是兼容C99标准,因此需要分析C99标准文法,下面是笔者对C99标准文法的注释。 C99文法分析 文法入口产生式,用于推导出external_declaration列表translation_unit: externa

2015-04-29 14:47:19 2156

原创 构造可配置词法语法分析器生成器(下)

笔者在该文章中实现了一个类似于Lex & Yacc的编译器前端构造工具,该工具基于LALR(1)分析法,支持二义性文法,支持语法制导翻译,支持错误恢复机制,使用它我们可以构造指定词法文法的编译器前端,并且构造的分析器是可重入的。文中最后给出了几个示例,构造四则表达式计算器,JSON解析器和C99标准C编译器前端。

2014-09-24 22:40:56 4408 4

原创 构造可配置词法语法分析器生成器(中)

语法分析器语法分析器(grammar parser)是编译器的核心部分之一,它的作用是检测词法分析器返回的token序列是否符合文法定义的规则。一个完整的语法分析器除了检测语法正确性外还要包含对出错的处理以及错误恢复等功能。

2014-09-24 09:21:11 5358

原创 构造可配置词法语法分析器生成器(上)

词法分析器(tokenizer)的作用是按照词法定义规则将输入流分解为token序列,同时记录与每个token匹配的串和出现的位置等信息提供给语法分析器。手工编写一个针对某种语言的词法分析器是比较容易的,事实上很多编译器的词法分析器也是手写的,这种方式的优点是直观容易理解,缺点是开发效率低且易出错。编译技术经过几十年的发展已经形成了一套成熟的理论,应用这些理论可以让我们实现词法分析器的自动构造。在Lex中,每个词法规则由正则表达式定义,我们只需要定义每个token的正则表达式,Lex就可以自动生成对应的分析

2014-09-22 09:36:03 8346 1

转载 Windows Kernel32.dll--内核库函数提供的API

AddAtom 向本地原子表添加一个字符串AllocConsole 为当前进程分配一个新控制台AreFileApisANSI 确定一个WIN32文件函数集是否在使用ANSI或OEM字符集代码页BackupRead 向一缓冲区读进与给定文件相关联的数据BackupSeek 在访问数据流中向前搜索BackupWrite 将数据传送到指定的文件或目录中Beep 在扬声器上发出简单

2014-08-05 14:15:05 8976 1

转载 ios 静态库制作过程

一个静态库和一个调用静态库的例子。静态库的编写:1.静态库工程的建立:Xcode New一个新的project,选择IOS下面的Framework&Library,下面有一个Cocoa Touch Static Library。直接next去建立一个Print这样的工程。2.工程建立我们添加很简单的"- (void)printA;"和"+ (void)p

2014-03-19 14:55:06 773

转载 windows下gvim配置文件

set nocompatiblesource $VIMRUNTIME/vimrc_example.vimsource $VIMRUNTIME/mswin.vimbehave mswinset diffexpr=MyDiff()function MyDiff() let opt = '-a --binary ' if &diffopt =~ 'icase' | l

2014-01-13 23:09:22 1132

转载 线性代数的本质

线性代数课程,无论你从行列式入手还是直接从矩阵入手,从一开始就充斥着莫名其妙。比如说,在全国一般工科院系教学中应用最广泛的同济线性代数教材(现在到了第四版),一上来就介绍逆序数这个古怪概念,然后用逆序数给出行列式的一个极不直观的定义,接着是一些简直犯傻的行列式性质和习题——把这行乘一个系数加到另一行上,再把那一列减过来,折腾得那叫一个热闹,可就是压根看不出这个东西有嘛用。大多数像我一样

2013-12-31 21:20:57 1354

原创 庞果网-单词博弈

题目详情甲乙两个人用一个英语单词玩游戏。两个人轮流进行,每个人每次从中删掉任意一个字母,如果剩余的字母序列是严格单调递增的(按字典序a 输入: 一连串英文小写字母,长度不超过15,保证最开始的状态不是一个严格单增的序列。输出:1表示甲可以赢,0表示甲不能赢。例如: 输入 bad, 则甲可以删掉b或者a,剩余的是ad或者bd,他就赢了,输出1。又如: 输入 aaa, 则甲只能

2013-12-02 12:45:57 1849 4

转载 极小极大搜索方法、负值最大算法和Alpha-Beta搜索方法

1. 极小极大搜索方法    一般应用在博弈搜索中,比如:围棋,五子棋,象棋等。结果有三种可能:胜利、失败和平局。暴力搜索,如果想通过暴力搜索,把最终的结果得到的话,搜索树的深度太大了,机器不能满足,一般都是规定一个搜索的深度,在这个深度范围内进行深度优先搜索。    假设:A和B对弈,轮到A走棋了,那么我们会遍历A的每一个可能走棋方法,然后对于前面A的每一个走棋方法,遍历B的每一个走棋方

2013-11-28 09:15:59 1714

转载 IOS之动画

15.1 动画介绍15.2 Core Animation基础15.3 隐式动画15.4 显式动画15.5 关键帧显式动画15.6 UIView级别动画15.1 动画介绍在iOS中动画实现技术主要是:Core Animation。 Core Animation负责所有的滚动、旋转、缩小和放大以及所有的iOS动画效果。其中UIKit类通常都有animated:参

2013-10-30 16:04:18 966 2

转载 UIView 和 CALayer的比较

原文链接:http://o0o0o0o.iteye.com/blog/1728599UIView 和 CALayer的那点事(1)老祖万物归根,UIView和CALayer都是的老祖都是NSObjet。 1: UIView的继承结构为: UIResponder : NSObject。 可以看出UIView的直接父类为UIResponder 类

2013-10-30 14:44:12 853

转载 CALayer简单教程

首先要说的是CALayers 是屏幕上的一个具有可见内容的矩形区域,每个UIView都有一个根CALayer,其所有的绘制(视觉效果)都是在这个layer上进行的。(译者注:为验证这点,我写下了如下代码:12345678910UILabel* lable = [[UILabel alloc]initWithFram

2013-10-30 14:13:29 830

转载 VS2008性能分析工具

在过去十年间,涌现了许多新的软件技术和平台。每种新技术都要求掌握专门的知识才能创建出性能良好的应用程序。现在,由于各种 Internet 技术(如博客)使失望的用户可轻松地否定您的应用程序,因此您确实需要将性能放到首要位置。在计划早期,就应添加响应性能要求并创建原型来确定可能的技术限制。在整个开发过程中,还应衡量应用程序的各个性能方面以发现可能的性能下降,同时确保速度较慢情形下的测试人员文件并跟踪

2013-10-26 22:55:13 4711

原创 继实现索引遇到的问题

上一篇文章:http://blog.csdn.net/xinghongduo/article/details/8754650     上一篇文章的最后尝试了取消关键字页,直接将关键字存储在索引节点中减少IO次数的办法。当时的想法还不太成熟,直接将索引节点的关键字长度直接定义为767,索引节点的阶数是固定的,但多数情况下关键字的长度也就是几十字节,大部分的空间得不到利用,IO效率低下,而且索

2013-10-17 23:06:02 1145

原创 AVL树实现

avl.h#ifndef avl_tree_h#define avl_tree_htypedef struct tree_node_t tree_node;struct tree_node_t { tree_node_t *left ,*right; struct { void *key; void *value; }kv; in

2013-10-14 18:37:58 1131

转载 调试的艺术——Debug技巧总结

Q1:Release版本不能调试吗?A1: Release版本、Debug版本的区别,据我目前所知有3处:编译是否“编译器优化”过;是否有完整调试信息;_DEBUG宏和NDEBUG宏;先说这三个选项的位置: “编译器优化”,VS2003里,位于 工程属性(在Solution Explorer面板的某个工程上点右键)-> C/C++ -> Optimization -> 第一项Optimiz

2013-10-05 19:47:40 1142

转载 ios消息推送机制原理与实现

Push的原理:Push 的工作机制可以简单的概括为下图图中,Provider是指某个iPhone软件的Push服务器,这篇文章我将使用.net作为Provider。APNS 是Apple Push Notification Service(Apple Push服务器)的缩写,是苹果的服务器。上图可以分为三个阶段。第一阶段:.net应用程序把要发送的

2013-09-25 09:29:50 1437

转载 iOS7 注意事项

文章来源:http://blog.csdn.net/jjs_f13l/article/details/9712485这两天在工作中做了下iOS7得兼容问题。在项目中发现一些问题。有些猜测(都木有写demo验证过,只是根据项目中得现象做推测。主要是因Xcode5启动模拟器坑爹啊,人品bu爆发基本上cmd+R就是”模拟器尚未安装程序“``有木有)1.项目中使用一个UIVie

2013-09-23 10:06:55 2076

原创 64位时间戳实现

实现了64位时间戳,可以表示公元1年1月1日零时至9999年12月31日末时之间的时刻,精确到毫秒。/*----------------------------------------------------- Author: http://blog.csdn.net/xinghongduo E-Mail: 317358117@qq.com Description: 64位时间戳,可以

2013-07-20 10:00:05 13013 2

转载 关于 23 种设计模式的有趣见解

在网络上流畅很广的一篇旧文,暂时没找到原作者,目前所看到的最早转载时间是 2005 年 2 月 28 日。作者用轻松的语言,形象解释了 23 种模式,有很好的启发作用。(更新:已找到一篇发布时间是 2003 年 11 月20 日发布的文章,原标题是《追MM与设计模式(java的32种设计模式)》。谢谢@DarkRiver_尘 提供线索。)创建型模式1、FACTORY—追MM少不了请吃饭

2013-07-17 15:46:51 858

转载 VC与YACC、LEX集成

在这里,将介绍由英国Bumble-Bee Software公司生产的Windows环境下的YACC和LEX集成环境Parser Generator。Parser Generator是Windows下YACC和LEX的实现。它包括一个图形用户界面,同时包括YACC和Lex两个版本,分别叫做AYACC和Alex。Parser Generator非常适合于与VC++集成。  在安装了Parser G

2013-07-14 19:42:09 1111

转载 结构体最后的长度为0或者1的数组

在Linux系统里,/usr/include/linux/if_pppox.h里面有这样一个结构:struct pppoe_tag {    __u16 tag_type;    __u16 tag_len;    char tag_data[0];} __attribute ((packed));最后一个成员为可变长的数组,对于TLV(Type-Len

2013-07-01 18:17:44 678

转载 [iOS]深入浅出ObjC之消息

深入浅出ObjC之消息   罗朝辉(http://blog.csdn.net/kesalin)转载请注明出处在入门级别的ObjC 教程中,我们常对从C++或Java 或其他面向对象语言转过来的程序员说,ObjC 中的方法调用(ObjC中的术语为消息)跟其他语言中的方法调用差不多,只是形式有些不同而已。譬如C++ 中的:Bird * aBird = new Bird();

2013-06-27 15:32:03 652

转载 objc学习笔记-基础

1. xcode 4.3.3以后 NSAutoreleasePool 的用法发生改变,由   NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];           ….   [pool drain];变为:      @autoreleasepool {       ….   }2.

2013-06-27 12:53:16 3546

转载 UITextField的总结

.UITextField的初始化和设置 textField = [[UITextField alloc] initWithFrame:CGRectMake(120.0f, 80.0f, 150.0f, 30.0f)]; [textField setBorderStyle:UITextBorderStyleRoundedRect]; //外框类型 textField.placeh

2013-06-25 14:03:11 685

转载 IOS成长之路-NSDictionary和NSMutableDictionary例子微解

//创建不可改变的词典 NSDictionary * dictionary; dictionary = [NSDictionary dictionaryWithObjectsAndKeys:@"good lucky",@"why",@"bye bye",@"how",nil]; //里面的元素个数是奇数(不包括最后的 nil)的话是不可以的,偶数才行,因为是 id

2013-06-25 11:28:26 739

转载 @synthesize obj=_obj的意义详解 @property和@synthesize

我们在进行iOS开发时,经常会在类的声明部分看见类似于@synthesize window=_window; 的语句,那么,这个window是什么,_ window又是什么,两个东西分别怎么用,这是一个比较基本的问题,也关乎我们理解Objective-C中对类、类的属性、类的存取器、类的局部变量的统一理解。在32位系统中,如果类的 @interface 部分没有进行 ivar 声明,但有

2013-06-22 15:09:12 661

转载 fread-C语言是怎样读取文件的

原文:http://blog.csdn.net/xiaofengsheng/article/details/5370917为了效率的考虑,不至于频繁调用系统函数和访问IO设备,MSVC CRT的fread采用缓冲设计. C语言提供的关于缓冲的函数有:[cpp] view plaincopyint flush(FIL

2013-06-12 17:41:38 3673

转载 CreateFile函数详解

CreateFile The CreateFile function creates or opens the following objects and returns a handle that can be used to accessthe object:filespipesmailslotscommunications resourcesdisk device

2013-06-03 09:50:04 771

原创 求二进制最右为1的位是第几位

这段代码来自https://github.com/erlang/otp/blob/master/erts/emulator/sys/common/erl_mseg.cstatic const int debruijn[32] = { 0, 1, 28, 2, 29, 14, 24, 3, 30, 22, 20, 15, 25, 17, 4, 8, 31, 27, 13, 23, 21,

2013-05-25 22:07:02 4674 1

原创 实现一个基本的数据库

大概一年前的这个时候,为了深入了解数据库的内部原理和实现,我决定编写一个数据库系统的原型程序,这个行动断断续续坚持了一年,写了接近3W行C代码,现在除了事务和并发(只做到了存储引擎层面的并发),其他的功能基本都实现了。数据库是底层软件,实现起来有一定难度,为了编写这个程序(暂且就叫做XSQL吧),我阅读了很多关于开源数据库内部原理的书籍资料,总结了主流数据库的结构,然后依据其原理写出了XSQL。接

2013-05-20 16:31:26 1665 8

转载 InnoDB异步IO(AIO)实现详解

文章来源:http://hedengcheng.com/?p=98Innodb Aioinsert into nkeys values (71,71,71,71,71);Innodb的异步I/O,默认情况下使用linux原生aio,libaio。关于异步I/O的优势,可参考网文[18][19];libaio的限制,可见网文[17]。下面详细分析Innodb 异步I/O的处理

2013-05-13 08:41:20 1596

转载 Overlapped I/O

第六章 Overlapped I/O,在你身后变戏法本章回答了如下几个问题:  ◆ 什么是Overlapped I/O?为什么需要Overlapped I/O?如何让数据传输支持Overlapped I/O?  ◆ 数据传输结束后,Win32提供了哪些方式对用户进行通告,以便进行适当的善后?  ◆ 影响线程优先级的因素有哪些?如何获取或设置进程线程优先级?优先级的改变容易带来哪

2013-05-13 08:38:32 851

原创 实现索引遇到的问题

这些问题是在实现索引时遇到的,我利用B+树实现了索引,整个索引包括以下三个部分:B+树结点,关键字和链接结点。B+树结点存储在索引页中。链接结点是为了解决重复关键字的问题而设计的,所有重复关键字的数据行在数据页的地址在B+树的叶结点以单链表的形式链接起来,其实就是拉链法解决冲突,整个链表保存在链接页中。          B+树的key域是一个64位的数据类型,只能保存整型或者实型的关键字

2013-04-03 10:26:13 4924

转载 Linux内核源码分析方法

Linux内核源码分析方法一、内核源码之我见Linux内核代码的庞大令不少人“望而生畏”,也正因为如此,使得人们对Linux的了解仅处于泛泛的层次。如果想透析Linux,深入操作系统的本质,阅读内核源码是最有效的途径。我们都知道,想成为优秀的程序员,需要大量的实践和代码的编写。编程固然重要,但是往往只编程的人很容易把自己局限在自己的知识领域内。如果要扩展自己知识的广度,我们需要多接触其

2013-03-20 18:07:54 1259

安卓加载so卡死问题复现

某些低版本智能电视盒子系统上,APP调用System.loadLibrary会导致卡死的现象,经过定位为gnustl的问题,该示例可以稳定复现出问题

2018-04-14

protobuf iOS静态库

iOS 编译protobuf 2.6.1静态库

2016-03-01

类Lex & Yacc

笔者实现了一个类似于Lex & Yacc的编译器前端构造工具,该工具基于LALR(1)分析法,支持二义性文法,支持语法制导翻译,支持错误恢复机制,使用它我们可以构造指定词法文法的编译器前端,并且构造的分析器是线程安全的。里面还给出几个示例,构造四则表达式计算器,JSON解析器和C99标准C编译器前端。 编译原理课程的大杀器

2014-09-25

NeHe的OpenGL教程

OpenGL的经典入门教程,对新手很有帮助~~~~

2011-08-04

课程设计表达式计算器--递归实现

用递归实现的表达式计算器,课程设计时写的,支持分数,对表达式求精确值(由于小数可以用分数表示,因此不支持小数)

2011-01-24

控制台下C俄罗斯方块

VC++6.0下编译通过,变型落地消行有音效...

2010-10-08

空空如也

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

TA关注的人

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