自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

  • 博客(52)
  • 收藏
  • 关注

转载 Java: JNI完全手册

最近在公司里做了一个手机的项目,需要JAVA程序在发送短信的时候和第三方的短信服务器连接。短信接口是用C++写的。琢磨了三天,大致搞懂了JNI的主体部分。先将心得整理,希望各位朋友少走弯路。首先引用一篇文章,介绍一个简单的JNI的调用的过程。JAVA以其跨平台的特性深受人们喜爱,而又正由于它的跨平台的目的,使得它和本地机器的各种内部联系变得很少,约束了它的功能。解决JAVA对本地操作的一种

2012-06-21 15:58:43 261

转载 Linux UDP严重丢包问题的解决

测试系统在Linux上的性能发现丢包率极为严重,发210000条数据,丢包达110000之巨,丢包率超过50%。同等情形下Windows上测试,仅丢几条数据。形势严峻,必须解决。考虑可能是因为协议栈Buffer太低所致,于是先看看默认情况: sysctl -a |grep net.core 发现 net.core.rmem_max = 131071net.core.rm

2012-06-08 11:20:12 787

转载 什么是真正的实时操作系统

做嵌入式系统开发有一段时间了,做过用于手机平台的嵌入式Linux,也接触过用于交换机、媒体网关平台的VxWorks,实际应用后回过头来看理论,才发现自己理解的肤浅,也发现CSDN上好多同学们都对实时、嵌入式这些概念似懂非懂,毕竟如果不做类似的产品,平时接触的机会很少,即使做嵌入式产品开发,基本也是只管调用Platformteam封装好的API。所以在此总结一下这些概念,加深自己的理解,同时也给新手

2012-06-08 10:18:03 390

转载 [转]Linux线程同步之条件变量

与互斥锁不同,条件变量是用来等待而不是用来上锁的。条件变量用来自动阻塞一个线程,直到某特殊情况发生为止。通常条件变量和互斥锁同时使用。条件变量使我们可以睡眠等待某种条件出现。条件变量是利用线程间共享的全局变量进行同步的一种机制,主要包括两个动作:一个线程等待"条件变量的条件成立"而挂起;另一个线程使"条件成立"(给出条件成立信号)。条件的检测是在互斥锁的保护下进行的。如果一个条件为假,一个

2012-04-11 19:07:37 260

转载 Proof of Concept

From Wikipedia, the free encyclopediaJump to: navigation,searchTwo offshore skimmers tow an oil containment boom across the water during an oil spill and recovery proof of conc

2012-03-02 11:23:40 1344

原创 常用的PHP正则表达式

常用的PHP正则表达式[新浪ViVi] [百度搜藏] [QQ书签][作者:佚名 | 点击数:390 | 时间:2011-4-16]【大 中 小】^/d+$  //非负整数(正整数 + 0)^[0-9]*[1-9][0-9]*$  //正整数^((-/d+)|(0+))$  //非正整数(负整数 + 0)^-[0-9]*[1-9][0-9]*$  //负整数^-?/d+$

2011-06-09 09:46:00 270

原创 mysql errno:150

[MySQL] - errno:150<br />来源:http://www.javaeye.com/topic/615260<br /> <br />当你试图在mysql中创建一个外键的时候,这个出错会经常发生,这是非常令人沮丧的。像这种不能创建一个.frm 文件的报错好像暗示着操作系统的文件的权限错误或者其它原因,但实际上,这些都不是的,事实上,这个mysql报错已经被报告是一个mysql本身的bug并出现在mysql 开发者列表当中很多年了,然而这似乎又是一种误导。 <br /><br />

2011-05-24 21:13:00 332

原创 snprintf strncpy

<br /><br />snprintf 第二个参数是限制长度的,但是这个长度是包含'/0' <br /><br /><br />果然是  如果源字符串 超过这个长度  只会拷贝 -1个字符串  最后一个拷贝的是/0<br /><br />很严重的bug哦。。得空赶紧修复下  呵呵   多谢啦<br /><br />我也是测试22亿号码时发现的,返回码总是用户不在线,因为末尾的号码没写进去。 strncpy 的长度参数就不会拷贝/0<br /> <br />对于返回值,snprintf若成功

2011-05-17 16:02:00 329

原创 关于链接的诡异问题解决

<br />今天gdb定位一个问题,原本以为是子类父类的动态绑定问题,即指向子对象的父类引用,调用子对象里的一个成员函数,可是指向了一个很异常的父类函数,两个函数连名字都不一样。定位了半天,原来是链接的时候,下面的两个库中,都包含了httpframe的库,而且名字空间都一模一样,这种问题很难定位(可能使用的别人的库,那个库里也有一个东西叫那个名字,并且排在你的前面),增长了一次经验!<br />教训:<br />1.需要命名空间<br />2.命名有个性。

2011-04-20 20:33:00 253

转载 [zz]PHP实现MVC开发: 一个简单的MVC

<br />今天研究了下PHP MVC结构,所以决定自己写个简单的MVC,以待以后有空再丰富。<br />至于什么MVC结构,其实就是三个Model,Contraller,View单词的简称,,Model,主要任务就是把数据库或者其他文件系统的数据按 照我们需要的方式读取出来。View,主要负责页面的,把数据以html的形式显示给用户。Controller,主要负责业务逻辑,根据用户的 Request进行请求的分配,比如说显示登陆界面,就需要调用一个控制器userController的方法log

2011-03-21 14:10:00 447

转载 AJAX聊天室实现原理 JQuery+PHP 【转】

<br />AJAX 聊天室实现原理终极解析<br />闲来无事,做了一个AJAX聊天室,以前一直想做一个,因为我和几个朋友是Linux机子,尽管我们的机子上都有apache服务器,但要发送一个信息却不是很容易,老是要借助客户端,有时候吧Linux下的qq和gtalk之类的聊天软件太麻烦,所以呢,就写了一个聊天室。<br />先说一下我实现的这个聊天室的聊天模式:<br />    1,无须注册,登录之类,打开页面就可以聊天。<br />    2,为避免过量冗余信息,客户端只获取在

2011-03-21 13:57:00 2565

转载 linux 2.6进程与线程

<br />1 >    线程和进程的差别<br />线程机制支持并发程序设计技术,在多处理器上能真正保证并行处理。而在linux实现线程很特别,linux把所有的线程都当作线程实现。<br />linux下线程看起来就像普通进程(只是该进程和其他进程共享资源,如地址空间)。上述机制与Microsoft windows或是Sun Solaris实现<br />差异很大。这些系统提供专门支持线程机制(轻量级进程)。<br />在现代操作系统中,进程支持多线程。进程是资源管理及分配的最小单元

2010-12-22 10:51:00 391

原创 【转】cas (compare and swap)

<br />在2004年Maged M. Michael那片开创性的文章“Scalable Lock-Free Dynamic Memory Allocation”,采用了Lock-Free机制的malloc实现击败了目前所有现存的malloc库,包括ptmalloc3,hoard等,Lock-Free一时间成为主流的研究重点。我们也打算采用这种方法来提高Alloc()的性能,不过由于实现的复杂性,本文所要介绍的Lock-Free实现,主要是用于避免在读写空闲链表头部的Lock/Unlock带来的性能损失,

2010-12-02 14:52:00 2201

原创 JS正则表达式大全

<br />http://www.blogjava.net/onejavaer/articles/79070.html

2010-11-21 22:34:00 233

原创 linux file system -- 待续

<br />Linux 以一组通用对象的角度看待所有文件系统。这些对象是超级块(superblock)、inode、dentry 和文件。超级块在每个文件系统的根上,超级块描述和维护文件系统的状态。文件系统中管理的每个对象(文件或目录)在 Linux 中表示为一个 inode。inode 包含管理文件系统中的对象所需的所有元数据(包括可以在对象上执行的操作)。另一组结构称为 dentry,它们用来实现名称和 inode 之间的映射,有一个目录缓存用来保存最近使用的 dentry。dentry 还

2010-10-11 23:11:00 306

转载 Linux物理内存镜像分析

<br />本文由 hanniba911@yahoo.com.cn 翻译.<br />本文概述了怎样分析目标计算机的内存镜像的方法,通过这些方法,你可能从目标计算机提取出许多有用的信息,比如:一个内容完整的文件,每个进程中删除的信息以及所有那些曾经本次开机以来所有运行过,然后又被中止的进程。本文力图向大家说明内存分析的概念,本文说介绍的这些技术也能使你能从内存镜像中分析出重要的数据结构,并从物理内存中恢复文件的内容。<br /><br /><br />Linux物理内存镜像分析(Digital forens

2010-10-11 00:30:00 2500

转载 Linux 内存管理 -- 高端内存的映射方式

高端内存是指物理地址大于 896M 的内存。对于这样的内存,无法在“内核直接映射空间”进行映射。为什么?因为“内核直接映射空间”最多只能从 3G 到 4G,只能直接映射 1G 物理内存,对于大于 1G 的物理内存,无能为力。实际上,“内核直接映射空间”也达不到 1G, 还得留点线性空间给“内核动态映射空间” 呢。因此,Linux 规定“内核直接映射空间” 最多映射 896M 物理内存。对 于高端内存,可以通过 alloc_page() 或者其它函数获得对应的 page,但是要想访问实际物理内存,还得把 pa

2010-10-11 00:27:00 1846 1

原创 介绍跨域的两篇文章,很不错

<br />http://www.nowamagic.net/ajax/ajax_KonwHowToCrossDomain.php<br />http://www.ibm.com/developerworks/cn/web/wa-aj-jsonp1/

2010-09-01 01:17:00 292

转载 何时需要PIC

<br /><br />何时需要PIC<br />作者:王姗姗,华清远见嵌入式学院讲师。<br />“PCI”其实是我们在编译动态库的命令行参数,我们用这个参数标记,告诉GCC产生的代码不要包含对函数和变量具体内存位置的引用,这是因为现在还无法知道使用该消息代码的应用程序会将它连接到哪一段内存地址空间。这样编译出的*.o可以被用于建立共享链接库。建立共享链接库只需要用GCC的“-shared”标记即可。<br />现实生活中不是每个程序代码都是从零开始,常常会复用别人写好的,成熟的代码,而这些代码就被封装成

2010-08-31 11:08:00 291

原创 sem_open

<br />4, 遇到的问题<br />(1) sem_open() 找不到文件或路径的问题<br />这是由于在内核中,创建信号量的默认路径是/dev/shm。当你要创建一个信号量/tmp/mysem时,实际上是创建了一个/dev/shm/sem.tmp/mysem,而这里由于/dev/shm/tmp目录根本就不存在,所以会出错。<br />解决方法:<br />    *直接写信号量文件的名字,将会创建在/dev/shm中:sem_open("mysem", ...) <br />

2010-08-10 09:21:00 1725

原创 recv函数返回值说明

<br />recv函数返回值说明<br />TechDocs 2010-05-29 16:06:21 阅读108 评论0字号:大中小<br />recv函数<br /><br />int recv( SOCKET s, char FAR *buf, int len, int flags);<br />不论是客户还是服务器应用程序都用recv函数从TCP连接的另一端接收数据。该函数的第一个参数指定接收端套接字描述符;<br />第二个参数指明一个缓冲区,该缓冲区用来存放recv函数接收到的数据;<br />

2010-08-09 12:17:00 7801 1

原创 C++使用Json作为数据包装格式的通信

{ 2009 11 09 }C++使用Json作为数据包装格式的通信版权声明:转载时请以超链接形式标明文章原始出处和作者信息本文链接:http://adebugger.cn/2009/11/cpp-json-data-communication/Json大家都耳熟能详了吧?现在Json广泛用于各类通信,特别是基于Http协议的通信,一般的服务端动态脚本语言都有库支持Json的编码与解码。但很少有听过Json被C++使用来作为通信的格式,不过去了http://www.json.org/

2010-08-03 17:49:00 2056

原创 SVN分支与合并

<br />http://www.javaeye.com/topic/235466<br /> <br />分支的基本概念就正如它的名字,开发的一条线独立于另一条线,如果回顾历史,可以发现两条线分享共同的历史,一个分支总是从一个备份开始的,从那里开始,发展自己独有的历史(如下图所示) <br /><br /><br /><br />⑴创建分支 <br />假设目前我们版本库中的项目的布局如下图: <br /><br /><br /><br />如图所示,我们的项目放在了trunk(主线)目录

2010-08-03 11:32:00 406

原创 Linux查看CPU信息、机器型号等硬件信息

<br />原文出处:http://www.51testing.com/?uid-225738-action-viewspace-itemid-210333<br /><br />测试机器的硬件信息:<br /><br />查看CPU信息(型号)<br /># cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c<br />      8  Intel(R) Xeon(R) CPU            E5410   @

2010-07-19 11:09:00 283

原创 Dynamo一个缺陷的架构设计(译)

Dynamo一个缺陷的架构设计(译)Monday, Mar 1st, 2010 by Tim | Tags: dynamo, key value store在云计算的时代,Dynamo可以说是一本实现分布式存储的红宝书,借鉴Dynamo实现的产品如雨后春笋般冒出。前段时间本人曾在Twitter上戏称这年头,如果一个号称有“海量数据”的互联网公司,不做一个自己的Dynamo,

2010-04-12 00:54:00 266

转载 vector clock算法保证版本信息

vector clock算法保证版本信息2009-12-02 22:33 解决数据版本问题  这里我们需要讨论一下数据版本问题,这个问题不仅仅存在于分布式系统,只是分布式系统的一些要求使得这个问题更复杂。先看个简单的例子,用户x对key1做了一次写入操作,我们设值是数字3。然后用户y读取了key1,这个时候用户y知道的值是3。然后用户x对值做了一个+1操作,

2010-04-12 00:46:00 268

转载 20 Linux System Monitoring Tools Every SysAdmin Should Know

本文只是摘录,更详细的请参阅全文: http://www.cyberciti.biz/tips/top-linux-monitoring-tools.html #1: top - Process Activity Command top/topas(系统版本为5或者高于5的aix的top替代品)  Commonly Used Hot Keys The top command provides se

2010-03-31 10:14:00 238

转载 google怎样使用linux(内核)

google怎样使用linux(内核)今年的linux内核开发大会上,google的开发人员也上台做了名为“how google use linux"的演讲。我斗胆翻译注解一番——括号内为注解,欢迎读者斧正。(前面几段讲google对linux kernel代码的管理及跟进,偏细碎,不翻译了)在google为linux加入的代码中,3/4是对内核核心的改动,设备驱动代码只是其中

2010-03-17 19:01:00 635

原创 话说程序员的职业生涯

IBM软件集团大中华区总架构师 寇卫东 有一些年轻的程序员向我咨询,将来的路应该怎么走?俗话说,条条大路通罗马。不同的路都能走向成功。到底选哪条路,取决于自己的兴趣。可能有程序员会问:如果还没找到自己的兴趣怎么办?我的建议是多尝试,努力做,这是职业生涯的必经之路。当你积累了一定的技术和经验之后,就会面临多种选择。选择哪条路,因人而异。如果对某一种或几种技术非常感兴趣,并且能够持续钻研,

2010-03-08 19:46:00 211

转载 signal函数的使用(比较实用的)

signal系统函数调用提供了一种最简单的范例。然而,由于C原形声明的缘故使它看起来比实际复杂。signal函数将一个给定的函数和一个特定的信号联系。这里是FreeBSD中的定义(和一个typedef一起): 引用: typedef void (*sig_t) (int); sig_t   signal(int sig, sig_t func); 第一个参数是目标信号。func参数是一个指针,

2010-02-28 01:32:00 367

转载 UNIX网络编程中RST分节总结

UNIX网络编程中RST分节总结 RST的含义为“复位”,它是TCP在某些错误情况下所发出的一种TCP分节。有三个条件可以产生RST:       1), SYN到达某端口但此端口上没有正在监听的服务器。       2), TCP想取消一个已有连接       3), TCP接收了一个根本不存在的连接上的分节。 1.  Connect 函数返回错误ECONNREFUS

2010-01-12 00:28:00 485

转载 HTTP协议详解(真的很经典)

转自:http://blog.csdn.net/gueter/archive/2007/03/08/1524447.aspxAuthor :Jeffrey引言                                        HTTP是一个属于应用层的面向对象的协议,由于其简捷、快速的方式,适用于分布式超媒体信息系统。它于1990年提出,经过几年的使用与发展,得到不断地

2009-12-09 19:49:00 302

转载 [zz]长连接专题

 一.网络程序运行过程中的常见异常及处理第1个异常是java.net.BindException:Address already in use: JVM_Bind。该异常发生在服务器端进行new ServerSocket(port)(port是一个0,65536的整型值)操作时。异常的原因是以为与port一样的一个端口已经被启动,并进行监听。此时用netstat –an命令,可以看到一

2009-11-02 15:36:00 558

原创 【转】关于回车与换行

最近在看以前在Windows下VC写的代码,发现每行代码后都有一个“^M”符号,而且代码中的中文注释也都是乱码的了。google了一下,总算把这两个事弄明白了。关于回车与换行很久以前,老式的电传打字机使用两个字符来另起新行。一个字符把滑动架移回首位 (称为回车,,ASCII码为0D),另一个字符把纸上移一行 (称为换行, ,ASCII码为0A)。当计算机问世以后,存储器曾经非常昂贵。有

2009-09-22 22:26:00 342

原创 【转载】配置开发支持高并发TCP连接的Linux应用程序全攻略

原文见:http://www.cppblog.com/flashboy/articles/47012.html1、修改用户进程可打开文件数限制在Linux平台上,无论编写客户端程序还是服务端程序,在进行高并发TCP连接处理时,最高的并发数量都要受到系统对用户单一进程同时可打开文件数量 的限制(这是因为系统为每个TCP连接都要创建一个socket句柄,每个socket句柄同时也是一个文件句柄)。可使

2009-09-22 21:39:00 326

原创 查看文件内容的命令 od

之前看过我一个师兄用过的命令,现在工作中需要,感觉确实是查看文件内容的一个利器。例如一个文件里的内容是abc,那么你觉得用od -x出来的会是什么东西呢,没错,就是这个文件内容的十六进制表示,这个文件的真实内容是abc/n,并且机器采用大端存储,即高位放在内存的低字节处,因此十六进制内容为6261 0a63,共4个字节!!

2009-07-30 16:58:00 252

原创 date命令将时间戳转换为可读日期

date -d 1970-01-01 UTC 1251428019 seconds 结果:Fri Aug 28 10:53:39 CST 2009

2009-07-29 16:25:00 675

原创 学习用 doxygen 生成源码文档

学习用 doxygen 生成源码文档文档选项打印本页将此页作为电子邮件发送英文原文级别: 中级Arp

2009-05-04 16:26:00 399

原创 可重入与异步信号安全

对于可重入、线程安全、异步信号安全几个概念的理解可重入与异步信号安全一个可重入的函数简单来说就是可以被中断的函数,也就是说,可以在这个函数执行的任何时刻中断它,转入OS调度下去执行另外一段代码,而返回控制时不会出现什么错误。《多线程编程指南》中定义,可以被信号控制器安全调用的函数被称为"异步信号安全"函数。因此,我认为可重入与异步信号安全是一个概

2009-05-03 23:08:00 357

转载 memcached线程模型分析

目前网上关于memcached的分析主要是内存管理部分,下面对memcached的线程模型做下简单分析 有不对的地方还请大家指正,对memcahced和libevent不熟悉的请先google之 先看下memcahced启动时线程处理的流程 <v:shapetype id="_x0000_t75" coordsize="21600,21600" o:spt="75" o:p

2009-05-03 21:22:00 709

空空如也

空空如也

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

TA关注的人

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