自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

xiaojun11的专栏

专注于流媒体技术和机器学习

  • 博客(65)
  • 资源 (2)
  • 收藏
  • 关注

转载 h264 编码 0延时

x264代码:C++1x264_param_default_preset(&m_x264param, "ultrafast", "zerolatency");ffmpeg里:C12av_opt_set(c->priv

2016-07-28 18:09:01 2341

转载 Android.mk 文件语法详解

转载自:http://www.cnblogs.com/wainiwann/p/3837936.html  0. Android.mk简介:Android.mk文件用来告知NDK Build 系统关于Source的信息。 Android.mk将是GNU Makefile的一部分,且将被Build System解析一次或多次。所以,请尽量少的在Android.mk中声明变量,也

2016-07-28 15:44:36 328

转载 编写和调试Android下JNI程序流程

1,切换到Android目录下bin/classes,使用javah命令生成jni所需的头文件,命令类似于:javah com.xxx.ooo,其中,com.xxx为package名称,ooo为包含native方法的class名称,不需要.class后缀。2,在项目的主目录下生成名为jni 的文件夹,将生成的.h头文件拷贝到该目录,如果觉得该文件的名称过长,可以进行重命名,例如可以将com

2016-07-28 14:31:04 311

转载 C++中虚析构函数的作用

转载自:http://blog.csdn.net/starlee/article/details/619827   我们知道,用C++开发的时候,用来做基类的类的析构函数一般都是虚函数。可是,为什么要这样做呢?下面用一个小例子来说明:        有下面的两个类:class ClxBase{public:    ClxBase() {};    virtual

2016-07-28 14:13:32 282

原创 accept函数精讲--学《linux高性能服务器编程》

学accept  调用对于 客户端的网络断开 毫不知情,下面我们重新执行上述过程,不过这次 不断开网络连接,而是在简历连接后立即退出客户端程序,这次accept调用同样正常返回由此可见,,accept 只是从监听队列中取出连接,而不论连接处于何种状态(如上面的established 状态 和close_wait状态),更不关心任何网络状况的变化详情请看书

2016-07-28 09:44:21 485

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

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

2016-07-27 18:33:18 445

转载 linux中动态库和静态库

在linux环境下文件的类型是不依赖于其后缀名的,一般地:.so 是共享库,相当于windows的.dll.o 是编译的目标文件.a 是静态库,只是把一堆.o文件打了个包使用动态库时,  静态库:绝对路径/lib名字   头文件: -I (大写的i)下面以工程libtest为例说明gcc创建和使用静态库、动态库的过程,libtest目录结构和内容如图1所示,其中

2016-07-26 17:51:32 505

转载 TCP的流量控制和拥塞控制

转载自:http://www.cnblogs.com/newwy/p/3254029.htmlTCP的流量控制1.概述     所谓的流量控制就是让发送方的发送速率不要太快,让接收方来得及接受。利用滑动窗口机制可以很方便的在TCP连接上实现对发送方的流量控制。TCP的窗口单位是字节,不是报文段,发送方的发送窗口不能超过接收方给出的接收窗口的数值。 

2016-07-26 15:14:13 526

转载 TCP协议连接的11种状态浅谈

第一篇摘抄:http://abuve.blog.51cto.com/2237587/611468第二篇摘抄:http://www.cnblogs.com/qlee/archive/2011/07/12/2104089.html了解TCP的协议可以在很大程度上帮助我们分析服务器当前的TCP连接状态,同时也是排查一些网络故障的基础,首先来看一下TCP协议的三次握手与四次断开

2016-07-26 11:46:00 1788

转载 libevent源代码文件组织

——libevent源代码文件组织1 前言详细分析源代码之前,如果能对其代码文件的基本结构有个大概的认识和分类,对于代码的分析将是大有裨益的。本节内容不多,我想并不是说它不重要!2 源代码组织结构Libevent的源代码虽然都在一层文件夹下面,但是其代码分类还是相当清晰的,主要可分为头文件、内部使用的头文件、辅助功能函数、日志、libevent框架、对系统I/O多路复用机制

2016-07-25 17:31:17 266

转载 通用的Makefile及解释

######################################  # Copyright (c) 1997 George Foot ([email protected])  # All rights reserved.  ######################################  #目标(可执行文档)名称,库(譬如stdcx,i

2016-07-25 17:27:50 1127

转载 C++ 堆结构(数组实现)

要说最大堆和最小堆,就得先知道最大树和最小树。每个结点的值都大于(小于)或等于其子节点(如果有的话)值的树,就叫最大(最小)树。最大堆(最小堆)是最大(最小)完全树。由于堆是完全二叉树,所以可以用公式化描述,用一维数组来有效的描述堆结构。利用二叉树的性质:如果对一棵有n个结点的完全二叉树的结点按层序编号(从第1层到第[log2n]向下取整+1层,每层从左到右

2016-07-25 14:10:49 2264

转载 堆的数组实现

摘抄:http://www.cnblogs.com/kkgreen/archive/2011/05/17/2048299.html用数组来实现堆比链式实现简单,这是因为:1)在插入操作中,链式实现需要一个getInsertNode方法去找插入在哪个结点之下,而在数组中,插入结点的位置下标是依次递增的,(完全二叉树)插入操作的向上调整也可以直接根据下标来找父节点(思维和链式一样)

2016-07-25 14:06:42 862

转载 函数时间复杂度的计算详解(转自CSDN)

转自:http://blog.csdn.net/flyfish1986/article/details/46994347   http://www.cnblogs.com/SCAU_que/articles/1735784.html函数的渐近增长:给定两个函数f(n)和g(n),如果存在一个整数N,使得对于所有的n > N,f(n)总是比g(n)大,那么,我们说f(n)的增长渐近快

2016-07-22 17:16:51 7328

转载 海量数据处理专题(五)——堆

【什么是堆】概念:堆是一种特殊的二叉树,具备以下两种性质1)每个节点的值都大于(或者都小于,称为最小堆)其子节点的值2)树是完全平衡的,并且最后一层的树叶都在最左边这样就定义了一个最大堆。如下图用一个数组来表示堆:那么下面介绍二叉堆:二叉堆是一种完全二叉树,其任意子树的左右节点(如果有的话)的键值一定比根节点大,上图其实就是一个二叉堆。你一定发觉了,

2016-07-22 15:43:19 338

转载 TCP、UDP、IP报头结构体分析

讲解比较好的文章: 360Doc地址IP数据报头结构  : http://www.360doc.com/content/12/0329/14/9210126_198940526.shtml  http://www.360doc.com/content/12/1218/10/3405077_254722699.shtmlTCP数据报结构:   http://www.360

2016-07-22 14:01:51 692

转载 Linux进程间通信——使用匿名管道

转载自:http://blog.csdn.net/ljianhui/article/details/10168031在前面,介绍了一种进程间的通信方式:使用信号,我们创建通知事件,并通过它引起响应,但传递的信息只是一个信号值。这里将介绍另一种进程间通信的方式——匿名管道,通过它进程间可以交换更多有用的数据。一、什么是管道如果你使用过Linux的命令,那么对于管道

2016-07-19 18:54:14 308

转载 Linux进程间通信——使用命名管道

转载自: http://blog.csdn.net/ljianhui/article/details/10202699在前一篇文章——Linux进程间通信——使用匿名管道中,我们看到了如何使用匿名管道来在进程之间传递数据,同时也看到了这个方式的一个缺陷,就是这些进程都由一个共同的祖先进程启动,这给我们在不相关的的进程之间交换数据带来了不方便。这里将会介绍进程的另一种通信方式——命名管道,来

2016-07-19 18:52:44 322

转载 Linux进程间通信——使用消息队列

下面来说说如何用不用消息队列来进行进程间的通信,消息队列与命名管道有很多相似之处。有关命名管道的更多内容可以参阅我的另一篇文章:Linux进程间通信——使用命名管道一、什么是消息队列消息队列提供了一种从一个进程向另一个进程发送一个数据块的方法。  每个数据块都被认为含有一个类型,接收进程可以独立地接收含有不同类型的数据结构。我们可以通过发送消息来避免命名管道的同步和阻塞

2016-07-19 18:51:27 656

转载 Linux进程间通信——使用信号量

这篇文章将讲述别一种进程间通信的机制——信号量。注意请不要把它与之前所说的信号混淆起来,信号与信号量是不同的两种事物。有关信号的更多内容,可以阅读我的另一篇文章:Linux进程间通信——使用信号。下面就进入信号量的讲解。一、什么是信号量为了防止出现因多个程序同时访问一个共享资源而引发的一系列问题,我们需要一种方法,它可以通过生成并使用令牌来授权,在任一时刻只能有一个执行

2016-07-19 18:50:18 491

转载 Linux进程间通信——使用共享内存

转载 :http://blog.csdn.net/ljianhui/article/details/10253345 下面将讲解进程间通信的另一种方式,使用共享内存。一、什么是共享内存顾名思义,共享内存就是允许两个不相关的进程访问同一个逻辑内存。共享内存是在两个正在运行的进程之间共享和传递数据的一种非常有效的方式。不同进程之间共享的内存通常安排为同一

2016-07-19 18:48:46 297

转载 linux下 open() write() read() close函数

1、open()函数功能描述:用于打开或创建文件,在打开或创建文件时可以指定文件的属性及用户的权限等各种参数。所需头文件:#include ,#include ,#include 函数原型:int open(const char *pathname,int flags,int perms)参数:pathname:被打开的文件名(可包括路径名如"dev/tty

2016-07-19 17:51:09 545

转载 文件锁fcntl()函数的使用

问:为什么要使用文件锁?答:当多个用户共同使用、操作一个文件的情况时,Linux采用的方法就是给文件上锁,来避免共享的资源产生竞争的状态。问:文件锁有哪些类型?答:文件锁包括建议性锁和强制性锁。一般情况下,内核和系统都不适用建议性锁,采用强制性锁的影响很大,每次读写操作都必须检查是否有所存在。问:怎样实现文件上锁?答:在Linux中,实现文件上锁的函数有lo

2016-07-19 16:40:44 821

转载 Linux 文件锁

摘自: http://blog.csdn.net/zhx6044/article/details/8003728       在文已经共享的情况下如何操作,也就是当多个进程同时操作同一个文件时,我们怎么保证文件数据的正确性。linux通常采用的方法是文件上锁,来避免共享资源的产生竞争状态。                    文件锁包括建议性锁和强

2016-07-19 15:46:43 333

转载 Sed linux命令详解(详细)

sed是一种流编辑器,它是文本处理中非常中的工具,能够完美的配合正则表达式使用,功能不同凡响。处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。文件内容并没有 改变,除非你使用重定向存储输出。Sed主要用来自动编辑一个或多个文件;简化对文件

2016-07-19 15:15:00 329

转载 Sed 命令详解

转自:http://www.cnblogs.com/dong008259/archive/2011/12/07/2279897.html   东方雨中漫步者sed是一个很好的文件处理工具,本身是一个管道命令,主要是以行为单位进行处理,可以将数据行进行替换、删除、新增、选取等特定工作,下面先了解一下sed的用法sed命令行格式为:         sed [-nefri] ‘comm

2016-07-19 15:08:50 336

转载 linux awk命令详解

简介awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大。简单来说awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行各种分析处理。awk有3个不同版本: awk、nawk和gawk,未作特别说明,一般指gawk,gawk 是 AWK 的 GNU 版本。awk其名称得自于它的创始人 Alfr

2016-07-19 09:35:17 340

转载 Nginx学习之三-ngx_http_request_t结构体

摘自: http://blog.csdn.net/xiajun07061225/article/details/9189505   江雨烟云的博客ngx_http_request_s是nginx中非常重要的一个结构体,贯穿于htpp请求处理的整个过程中。下面解释了ngx_http_request_s结构体中与HTTP框架相关的重要的成员变量。

2016-07-15 14:30:35 1842

转载 Nginx开发从入门到精通

摘抄 : http://tengine.taobao.org/book/index.html#缘起nginx由于出色的性能,在世界范围内受到了越来越多人的关注,在淘宝内部它更是被广泛的使用,众多的开发以及运维同学都迫切的想要了解nginx模块的开发以及它的内部原理,但是国内却没有一本关于这方面的书,源于此我们决定自己来写一本。本书的作者为淘宝核心系统服务器平台组的成员,本书写作的思

2016-07-15 10:34:56 493

转载 快速排序算法

快速排序的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。快速排序是一种不稳定的排序算法,也就是说,多个相同的值的相对位置也许会在算法结束时产生变动快速排序是C.R.A.Hoare于1962年提出的一种划分交换排序。它采

2016-07-14 17:43:33 300

转载 选择排序法

/*------------------------------------------------------------------------------------------                                                   选择排序法排序原理:从第一位开始,和后面逐个进行比较,第一次将第一个元素赋值             

2016-07-14 15:20:34 319

转载 冒泡排序法

/*-------------------------------------------------------------------------------------------                                              冒泡排序法排序原理:将最大(最小)元素通过逐个比较和移动,移到最后一位.然后又

2016-07-14 14:06:54 291

转载 希尔排序法

/*----------------------------------------------------------------------------------------                                           希尔排序法算法原理:也称缩小增量法,是将整个无序列分成若干个子序列,再分别                 进行插入排序的

2016-07-14 13:31:05 404

转载 折半排序法(二分插入排序法)

/*------------------------------------------------------------------------------------------------                                 折半排序法(二分插入排序法)排序原理:其实也属于插入法类型,分已排序和未排序部分.然后将未排序

2016-07-14 09:45:24 1690

转载 经典算法研究系列:五、红黑树算法的实现与剖析

红黑树算法的层层剖析与逐步实现 ----作者 July  二零一零年十二月三十一日本文主要参考:算法导论第二版本文主要代码:参考算法导论。本文图片来源:个人手工画成、算法导论原书。推荐阅读:Leo J. Guibas 和 Robert Sedgewick 于1978年写的关于红黑树的一篇论文。---------------------------------

2016-07-13 15:40:23 326

转载 红黑树从头至尾插入和删除结点的全程演示图

红黑树插入和删除结点的全程演示作者:July、saturnman。时间:二零一一年三月二十八日。出处:http://blog.csdn.net/v_JULY_v。声明:版权所有,侵权必究。-----------------------------------引言:    目前国内图书市场上,抑或网上讲解红黑树的资料层次不齐,混乱不清,没有一个完整而统一的

2016-07-13 15:29:32 4679 3

转载 红黑树的C++完整实现源码

红黑树的C++完整实现源码作者:July、saturnman。时间:二零一一年三月二十九日。出处:http://blog.csdn.net/v_JULY_v。声明:版权所有,侵权必究。-------------------------------------------前言:    本人的原创作品红黑树系列文章,至此,已经写到第5篇了。虽然第三篇文章:红

2016-07-13 15:28:32 1603

转载 一步一步写二叉查找树

一步一步写二叉查找树 摘自: http://www.cppblog.com/cxiaojia/archive/2012/08/09/186752.html作者:C小加  更新时间:2012-8-9二叉查找树(BST)是二叉树的一个重要的应用,它在二叉树的基础上加上了这样的一个性质:对于树中的每一个节点来说,如果有左儿子的话,它的左儿子的值一定小于它本身的值,如果有右

2016-07-13 14:21:05 272

转载 二叉查找树--插入、删除、查找

二叉查找树是满足以下条件的二叉树:1.左子树上的所有节点值均小于根节点值,2右子树上的所有节点值均不小于根节点值,3,左右子树也满足上述两个条件。  二叉查找树的插入过程如下:1.若当前的二叉查找树为空,则插入的元素为根节点,2.若插入的元素值小于根节点值,则将元素插入到左子树中,3.若插入的元素值不小于根节点值,则将元素插入到右子树中。  二叉查找树的删除,分三种情况进行处理:

2016-07-13 14:17:27 305

转载 教你初步了解红黑树

教你初步了解红黑树 作者:July、saturnman   2010年12月29日本文参考:Google、算法导论、STL源码剖析、计算机程序设计艺术。推荐阅读:Left-Leaning Red-Black Trees, Dagstuhl Workshop on Data Structures, Wadern, Germany, Fe

2016-07-13 12:02:08 313

RPDesktop_3_8_1_69631

会控软件,polycom 宝利通 的WINDOWS客户端,H323协议,sip协议学习的好工具

2021-02-09

百度云-vs2013.txt

Vs2013工具下载地址,windows开发必备工具,

2020-02-02

空空如也

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

TA关注的人

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