自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

浮白

当浮一大白

  • 博客(27)
  • 资源 (8)
  • 问答 (1)
  • 收藏
  • 关注

原创 make条件判断ifeq,ifneq,ifdef,ifndef

使用条件判断,可以让make根据运行时的不同情况选择不同的执行分支。条件表达式可以是比较变量的值,或是比较变量和常量的值。 一、示例 下面的例子,判断$(CC)变量是否“gcc”,如果是的话,则使用GNU函数编译目标。     libs_for_gcc = -lgnu     normal_libs =     foo: $(objects)     ife

2013-02-26 14:27:55 73547 2

原创 makefile函数集锦

Makefile  常用函数表一、字符串处理函数1.$(subst FROM,TO,TEXT)函数名称:字符串替换函数—subst。函数功能:把字串“TEXT”中的“FROM”字符替换为“TO”。返回值:替换后的新字符串。2.$(patsubst PATTERN,REPLACEMENT,TEXT)函数名称:模式替换函数—patsubst。函数功能:搜索“TEXT”中

2013-02-26 11:10:47 1746

原创 C++中产生随机数

C/C++怎样产生随机数:这里要用到的是rand()函数, srand()函数,C语言/C++里没有自带的random(int number)函数。(1)  如果你只要产生随机数而不需要设定范围的话,你只要用rand()就可以了:rand()会返回一随机数值, 范围在0至RAND_MAX 间。RAND_MAX定义在stdlib.h, 其值为2147483647。例如:#incl

2013-02-25 19:48:50 832

原创 linux信号锁的封装与实现

信号量的值与相应资源的使用情况有关,当它的值大于 0 时,表示当前可用的资源数的数量;当它的值小于 0 时,其绝对值表示等待使用该资源的进程个数。信号量的值仅能由 PV 操作来改变。     在 Linux 下,PV 操作通过调用semop函数来实现。该函数定义在头文件 sys/sem.h中,原型如下:     int  semop(int  semid,struct

2013-02-25 17:15:10 2763

原创 linux select 多路复用机制

函数作用:系统提供select函数来实现多路复用输入/输出模型。select系统调用是用来让我们的程序监视多个文件句柄的状态变化的。程序会停在select这里等待,直到被监视的文件句柄有一个或多个发生了状态改变。关于文件句柄,其实就是一个整数,我们最熟悉的句柄是0、1、2三个,0是标准输入,1是标准输出,2是标准错误输出。0、1、2是整数表示的,对应的FILE *结构的表示就是stdin、

2013-02-25 14:18:45 38433 8

原创 LINUX 共享内存越界

shmget的时候,我们能指定共享内存的size,当size越界的时候,会如何呢?如下:/* * ShareMem.h * * Created on: 2013-2-25 * Author: coreycui */#ifndef SHAREMEM_H_#define SHAREMEM_H_#include #include #include

2013-02-25 11:07:56 2692

转载 linux共享内存

共享内存是系统出于多个进程之间通讯的考虑,而预留的的一块内存区。在/proc/sys/kernel/目录下,记录着共享内存的一些限制,如一个共享内存区的最大字节数shmmax,系统范围内最大共享内存区标识符数shmmni等,可以手工对其调整,但不推荐这样做。一、应用共享内存的使用,主要有以下几个API:ftok()、shmget()、shmat()、shmdt()及shmctl()

2013-02-25 10:52:30 1043

原创 linux文件锁实现

linux文件锁是默认的劝告锁。以下证实两点:1)读写锁分别的排他性。2)当文件上锁区域交叉时的锁竞争关系。FIleMutex.h:class FileMutex {public: FileMutex(const string& filename); virtual ~FileMutex(); int lockR(int offset,int len);

2013-02-24 23:38:14 1671

转载 Linux 2.6 中的文件锁

在多任务操作系统环境中,如果一个进程尝试对正在被其他进程读取的文件进行写操作,可能会导致正在进行读操作的进程读取到一些被破坏或者不完整的数据;如果两个进程并发对同一个文件进行写操作,可能会导致该文件遭到破坏。因此,为了避免发生这种问题,必须要采用某种机制来解决多个进程并发访问同一个文件时所面临的同步问题,由此而产生了文件加锁方面的技术。早期的 UNIX 系统只支持对整个文件进行加锁,因此无

2013-02-24 13:31:42 859

原创 mutex和cond为何需要配合使用

pthread_cond_wait总和一个互斥锁结合使用。在调用pthread_cond_wait前要先获取锁。pthread_cond_wait函数执行时先自动释放指定的锁,然后等待条件变量的变化。在函数调用返回之前,自动将指定的互斥量重新锁住。int pthread_cond_signal(pthread_cond_t * cond);pthread_cond_signal通过

2013-02-23 19:32:23 6475

原创 C++线程锁封装

C++线程锁的封装,主要提供lock,unlock,require等操作,需要注意的是线程重复获取锁的问题,设置了一个count的计数器,该计算器之所以不考虑++,--的原子操作的问题,是因为该计数器本身就在lock与unlock中,所以本身是线程安全的。另外mutable count是将count的变化操作防止在const方法中,保证方法语义。class TC_T

2013-02-22 18:20:21 2948

转载 mutalbe解析

的中文意思是“可变的,易变的”,跟constant(既C++中的const)是反义词。  在C++中,mutable也是为了突破const的限制而设置的。被mutable修饰的变量,将永远处于可变的状态,即使在一个const函数中。  我们知道,如果类的成员函数不会改变对象的状态,那么这个成员函数一般会声明成const的。但是,有些时候,我们需要在const的函数里面修改一些跟类状

2013-02-22 17:36:20 680

转载 C++中public,protected,private访问

当private,public,protected单纯的作为一个类中的成员权限设置时:private: 只能由该类中的函数、其友元函数访问,不能被任何其他访问,该类的对象也不能访问. protected: 可以被该类中的函数、子类的函数、以及其友元函数访问,但不能被该类的对象访问 public: 可以被该类中的函数、子类的函数、其友元函数访问,也可以由该类的对象访问

2013-02-22 16:56:41 701

转载 java和C++语法上的一些区别

1)java是解释性语言,java程序在运行时类加载器从类路经中加载相关的类,然后java虚拟机读取该类文件的字节,执行相应操作.而C++编译的 时候将程序编译成本地机器码.一般来说java程序执行速度要比C++慢10-30倍.即使采用just-in-time compiling (读取类文件字节后,编译成本地机器码)技术,速度也要比C++慢好多.2)java程序有要从网络上加载类字节

2013-02-21 11:26:34 3653

转载 关于反码取值的一些思考

#include int main(void){        unsigned char a = 0xa5;        printf("%d\n",~a);        char b = ~a;        printf("%d\n",b);        unsigned char c = ~a;        printf("%d\n",c);        retu

2013-02-21 00:51:29 870

转载 嵌套模版类

Templates can be defined within classes or class templates, in which case they are referred to as member templates. Member templates that are classes are referred to as nested class templates. Member

2013-02-19 16:44:33 725

原创 C++ 模版中的一些稀奇古怪的技巧

typename和.template的其他用法。将成员函数和嵌套类也定义为模板。模板的模板参数。零初始化。使用字符串作为模板实参时需要注意的地方。一:typename和.template的另类用法。    先看typename。在前面,typename总是用来定义一个模板参数,在这个时候他和classname有相同的功效。可是,typename的作用并不限于此。试想,在模板参数的类型中有一

2013-02-19 16:21:43 769 1

原创 placement new

placement new 是重载operator new 的一个标准、全局的版本,它不能够被自定义的版本代替(不像普通版本的operator new 和 operator delete能够被替换)。void *operator new( size_t, void *p ) throw()     { return p; }placement new的执行忽略了size_t参数,只

2013-02-19 16:01:32 422

原创 BufferedReader

BufferedReader有一个我们比较喜欢的方法,readLine,但是注意,该方法not including any line-termination characters, or null if the end of the stream has been reached。也就是说该方法将吃掉换行符。请注意。

2013-02-18 22:45:17 579

原创 c/c++ 变参

从写了好几年的java转到写c上来,充分的理解到了一句话“由俭入奢易,由奢入俭难”。习惯了java中的API和设计以及强大的JIT编译器和对语法的理解,对于C++实在是有点觉得设计者脑残,比如变参。变参的使用方式如下,其中变参表示待累加的参数int/*calculate_status*/ add(int* sum/*result*/,...){va_list vas;va_

2013-02-16 23:12:53 1161

原创 linux syslog日志服务

简介 不同的Linux发行版使用不同syslog程序来记录系统日志。的Debain 4.0/Ubuntu8.04(桌面版)默认使用的是sysklogd,配置文件为/etc/syslog.conf。Fedora9默认使用rsyslogd,配置文件为/etc/rsyslog.conf。ubuntu中使用rsyslog,配置文件在/etc/rsyslog.d/50-default.con

2013-02-14 22:24:40 6177

原创 Eclipse为action新增快捷键

在Eclipse的Plugin开发中,给Action增加快捷键是很简单的,只要在插件的plugin.xml加入如下内容即可:  point = "org.eclipse.ui.commands">      name="Bacchus.Category1"  description="Test description"  id="Bacchus.Category

2013-02-13 02:16:44 2466

原创 关于HttpServer的time-wait

TIME_WAIT状态根据TCP协议,主动发起关闭的一方,会进入TIME_WAIT状态,持续2*MSL(Max Segment Lifetime),缺省为240秒,在这个post中简洁的介绍了为什么需要这个状态。值得一说的是,对于基于TCP的HTTP协议,关闭TCP连接的是Server端,这样,Server端会进入TIME_WAIT状态,可想而知,对于访问量大的Web Server

2013-02-08 14:44:30 2039

原创 time_wait和close_wait

总结:一端忘记close,将造成另一端大量的close_wait的状态。主动执行close的一端,在量特别大的情况下,对so_linger没有做设置,将造成大量的time_wait状态的连接。TCP状态转移要点TCP协议规定,对于已经建立的连接,网络双方要进行四次握手才能成功断开连接,如果缺少了其中某个步骤,将会使连接处于假死状态,连接本身占用的

2013-02-08 13:49:14 2274

转载 慎用TCP的选项SO_LINGER

原文地址:http://blog.csdn.net/fullsail/article/details/4424324最近有一次性能测试,通讯程序出现错误,表现为服务器处理速度明显降低,检查发现服务器的很多句柄出于TIME_WAIT状态,后来发现测试用例写的有问题,在recv函数返回0后,没有close句柄。我很郁闷google了一下如何处理这类错误,发现了SO_LINGER这个选项,发现这

2013-02-07 16:17:15 800

原创 本地字节顺序和网络字节顺序

在C/C++写网络程序的时候,往往会遇到字节的网络顺序和主机顺序的问题。这是就可能用到htons(), ntohl(), ntohs(),htons()这4个函数。网络字节顺序与本地字节顺序之间的转换函数:      htonl()--"Host to Network Long"      ntohl()--"Network to Host Long"      htons

2013-02-01 11:26:10 850

原创 Makefile的变量

$@代表规则中的目标文件名。如果目标是一个文档(Linux中,一般称.a文件为文档),那么它代表这个文档的文件名。在多目标的模式规则中,它代表的是哪个触发规则被执行的目标文件名。$%规则的目标文件是一个静态库文件时,代表静态库的一个成员名。例如,规则的目标是“foo.a(bar.o)”,那么,“$%”的值就为“bar.o”,“$@”的值为“foo.a”。如果目标不是函数库文件,其值为空

2013-02-01 10:09:24 492

纯真IP数据库 2024-06-12最新的

纯真IP数据库 2024-06-12最新的

2024-06-15

vmware不完全卸载清除器

wware虚拟机如果不完全卸载,将导致无法重新安装,这个工具主要帮你自动清除虚拟机注册表注册项

2010-08-29

JAVA WEB 服务器

JAVA WEB 服务器 socket http协议解析

2010-04-21

JAVA httpserver

JAVA socket编写的httpserver

2010-04-21

Java动画、图形和极富客户端效果

《Java动画、图形和极富客户端效果开发》是一本关于利用图形和动画效果创建更好、更有效和更酷的桌面应用程序的书。《Java动画、图形和极富客户端效果开发》讨论Java基本原理、Swing、Java 2D、图形、图形用户界面(GUI)、动画、性能和基于这些基本原理的用于创建漂亮应用程序的高级效果。《Java动画、图形和极富客户端效果开发》第一部分讲述Java图形和用户界面编程的基本概念。第二部分讲述Java 2D和Swing中创建极富界面时有用的更多高级主题。第三部分讲述动画的基本原理。第四部分介绍极富客户端效果开发及示例。

2010-03-22

confluence 中文补丁包

放置到/WEB-INF/lib文件夹下重启服务器即可

2009-10-08

eclipse plugin源代码 完整工程

自己写的eclipse plugin 整个工程,里面有对多个扩展点的扩展,成为一个基本的扩展模型

2008-08-21

ExtJS新的主题

ExtJS一套新的主题theme和皮肤<br>漂亮,

2008-02-21

ror中文资料

ror中文资料ror中文资料

2007-10-31

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

TA关注的人

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