- 博客(28)
- 资源 (2)
- 收藏
- 关注
转载 Nginx 内存池(pool)分析
转自:http://www.linuxidc.com/Linux/2011-08/41860.htmNginx 内存池管理的源码在src/core/ngx_palloc.h、src/core/ngx_palloc.c 两个文件中。先将我整理的注释等内容贴上,方便下面分析:ngx_create_pool:创建poolngx_destory_pool:销毁 poolngx_
2013-11-20 22:10:04 1192
原创 Unix网络编程学习笔记——close与shutdown
在linux网络程序中有两个函数都可以发起终端TCP连接的请求,close与shutdown,那么这两个函数到底有什么区别呢?int close(int sockfd);close函数的缺省功能是将套接口做上”已关闭“标记,并立即返回到进程,这个套接字本身不能被该进程使用:它不能被用作read和write的参数,但TCP将试着发送以排队待发的任何数据,然后按照正常的TCP终
2013-11-17 18:21:40 1004
原创 Unix网络编程学习笔记——Select函数的返回条件
int select(int maxfdp,fd_set *readfds,fd_set *writefds,fd_set *errorfds,struct timeval *timeout); 在select函数的定义中,中间三个参数用于指定我们需要内核帮助测试是否可读、可写和异常条件的描述字。那么描述字在哪些情况下才会被认为准备好呢?下面四个条件任何一个满足的时候套
2013-11-17 11:54:43 1258
原创 链表常用操作的实现-C++模板实现
注:该贴为本人在温习数据结构的过程中自娱自乐编写的代码,如有错误欢迎纠正:)链表节点声明template class LinkNode{public: LinkNode(T v) { value=v; } T value; LinkNode* next;};链表类的声明template class LinkList{ pu
2013-11-07 22:02:55 687
转载 链表笔试面试题
1.已知链表的头结点head,写一个函数把这个链表逆序[cpp] view plaincopyvoid List::reverse() { list_node * p = head; list_node * q = p->next; list_node * r = NUL
2013-11-02 11:33:46 822
原创 各种排序算法的总结和比较
1 快速排序(QuickSort) 快速排序是一个就地排序,分而治之,大规模递归的算法。从本质上来说,它是归并排序的就地版本。快速排序可以由下面四步组成。 (1) 如果不多于1个数据,直接返回。(2) 一般选择序列最左边的值作为支点数据。(3) 将序列分成2部分,一部分都大于支点数据,另外一部分都小于支点数据。(4) 对两边利用递归排序数列。 快速排序比大部分排
2013-10-26 23:30:06 892 1
转载 Windows Socket五种I/O模型(二)——异步选择
Winsock 提供了一个有用的异步I/O模型。利用这个模型,应用程序可在一个套接字上,接收以Windows消息为基础的网络事件通知。具体的做法是在建好一个套接字后,调用WSAAsyncSelect函数。该模型最早出现于Winsock的1.1版本中,用于帮助应用程序开发者面向一些早期的16位 Windows平台(如Windows for Workgroups),适应其“落后”的多任务消息环境。应用
2008-12-07 20:27:00 1578
转载 微软打算建造巨型计算中心群
转自:http://blog.sina.com.cn/s/blog_4e8581890100bmza.html 今年2月1日,微软突然宣布,欲巨资(446亿美元)收购雅虎,雅虎杨致远“不识相”,扭扭捏捏,坐失良机,导致微软放弃(5月4日)该项收购计划。近日,杨致远终于“下课”,早该如此。于是,微软决心走自己的路,而不是向美国政府伸手要补助。 微软打算建造自己的“巨型计算
2008-11-30 11:49:00 638
转载 Windows Socket五种I/O模型(一)——选择模型(Select)
如果你想在Windows平台上构建服务器应用,那么I/O模型是你必须考虑的。Windows操作系统提供了选择(Select)、异步选择(WSAAsyncSelect)、事件选择(WSAEventSelect)、重叠I/O(Overlapped I/O)和完成端口(Completion Port)共五种I/O模型。每一种模型均适用于一种特定的应用场景。程序员应该对自己的应用需求非常明确,而且综合考虑
2008-11-22 23:19:00 4084
原创 《STL源码剖析》学习笔记4——迭代器(Iterator)
标签:STL,源码,iterator,迭代器,traits,容器,算法,Container,Algorithm STL设计的精髓在于,把容器(Containers)和算法(Algorithms)分开,彼此独立设计,最后再用迭代器(Iterator)把他们粘合在一起。可见迭代器在STL中的重要程度。迭代器已经作为一种设计思想被记录与《设计模式》中,它的意图在于“提供一种方法顺序访问一个聚
2008-11-18 18:42:00 3914 2
转载 聊聊云计算
转自:http://blog.joycode.com/joy/archive/2008/07/04/115163.aspx标签:B/S, C/S, SaaS, 云计算, Cloud, Google, Amazon IT界是一个特别适合“创新”的地方,尤其是各种各样的术语。各大厂商为了自己的利益,不断的推出一些新的术语,而媒体们也在不断的站队,跟着一些忽悠,搞得我们这些IT界的前线战
2008-11-17 15:24:00 849
原创 关于程序员如何提高自己的一些感言
标签:程序员, 提高, 高手, 目标, 基本功, 源码, 思考, 交流, 编程风格 我个人有接三年的软件开发经验,也做过不少大中型的项目,尝过成功的滋味,也体验过失败的痛苦,自己感觉还达不到高手的境界,和真正的高手还有不小的差距。要想提高自己首先不能满足于现状,我始终相信better enough is not better enough,要为自己树立一个更高的目标。有了目
2008-11-17 08:13:00 9276 6
转载 中国手机未来:高通时代还是联发科时代?
转自:http://blog.sina.com.cn/s/blog_4fbe74850100bgwn.html标签:联发科 mtk 山寨机 wcdma td-scdma cdma 3g 中兴 华为 it 当德州仪器、飞思卡尔、杰尔、ADI、NXP等一批元老级手机基带芯片厂商纷纷退出历史舞台后,第一梯队的手机芯片厂商就只剩下高通、联发科以及ST-NXP-EMP这三家了。ST-NXP-EM
2008-11-15 18:30:00 1265 1
转载 关于23种设计模式的有趣见解
标签:设计模式, 见解, Design Pattern, 创建型, 行为 创建型模式1、FACTORY—追MM少不了请吃饭了,麦当劳的鸡翅和肯德基的鸡翅都是MM爱吃的东西,虽然口味有所不同,但不管你带MM去麦当劳或肯德基,只管向服务员说“来四个鸡翅”就行了。麦当劳和肯德基就是生产鸡翅的Factory工厂模式:客户类和工厂类分开。消费者任何时候需要某种产品,只需向工厂请求即可。消费者
2008-11-15 14:00:00 733
原创 《STL源码剖析》学习笔记3——内存配置器alloc
标签:C,C++,STL,源码,学习,笔记,内存,配置器 虽然STL的内存配置器在我们的实际应用中几乎不用涉及,但它却在STL的各种容器背后默默做了大量的工作,STL内存配置器为容器分配并管理内存。统一的内存管理使得STL库的可用性、可移植行、以及效率都有了很大的提升,因此STL内存配置器是STL库中最重要的组成部分之一。 1、Constructor和Destroy 我
2008-11-15 10:32:00 2152
原创 《STL源码剖析》学习笔记2——神奇的__type_traits
标签:C,C++,STL,学习,笔记 在STL中为了提供通用的操作而又不损失效率,我们用到了一种特殊的技巧,叫traits编程技巧。具体的来说,traits就是通过定义一些结构体或类,并利用模板类特化和偏特化的能力,给类型赋予一些特性,这些特性根据类型的不同而异。在程序设计中可以使用这些traits来判断一个类型的一些特性,引发C++的函数重载机制,实现同一种操作因类型不同而异的效果。
2008-11-14 12:17:00 2616
原创 《STL源码剖析》学习笔记1——stl_config.h中和编译器相关的一些宏定义的解释
标签:C,C++,STL,学习,笔记 在SGI STL 中的config.h文件中有一些宏定义,这些宏定义可能会让你感到困惑,其实它们的主要作用就是为了区分不同编译器对C++ Standard的支持程度。 1. __STL_STATIC_TEMPLATE_MEMBER_BUG# if __GNUC__ == 2 && __GNUC_MINOR__ # defi
2008-11-14 12:05:00 2133 1
原创 C++中的四种类型转换
类型转换有c风格的,当然还有c++风格的。c风格的转换的格式很简单(TYPE)EXPRESSION; 但是c风格的类型转换有不少的缺点,有的时候用c风格的转换是不合适的,因为它可以在任意类型之间转换,比如你可以把一个指向const对象的指针转换成指向非const对象的指针,把一个指向基类对象的指针转换成指向一个派生类对象的指针,这两种转换之间的差别是巨大的,但是传统的c语言风格的
2008-11-14 10:27:00 2521
转载 C/C++中的可变参函数
C语言编程中有时会遇到一些参数个数可变的函数,例如printf()函数,其函数原型为:int printf( const char* format, ...);它除了有一个参数format固定以外,后面跟的参数的个数和类型是可变的(用三个点“…”做参数占位符),实际调用时可以有以下的形式:printf("%d",i); printf("%s",s); printf("the num
2008-11-14 10:18:00 2185
转载 微软不再抵制开源 将开发相应平台
一些业内人士认为专有软件厂商和开源提供商之间的分工并不是很清楚。随着越来越多的企业考虑采用开源技术,即使传统的软件厂商如微软也已采取措施应对这种客户的需求。 “开源并不是一个产品,而是一种软件开发的方法,”微软新加坡平台战略经理Matthew Hardman说。“微软并没有与开源竞争,就像耐克没有与奔跑在竞争一样。” Hardman说,软件巨头旨在为开源软件运行提供
2008-11-14 09:55:00 4977
原创 给定两个排好序的数组,怎样高效得判断这两个数组中存在相同的数字?
这个问题首先想到的是一个O(nlogn)的算法。就是任意挑选一个数组,遍历这个数组的所有元素,遍历过程中,在另一个数组中对第一个数组中的每个元素进行binary search。用C++实现代码如下: bool findcommon(int a[],int size1,int b[],int size2){ int i; for(i=0;i {
2008-11-13 18:17:00 5934 1
原创 螺旋式打印一个二维数组
问题描述:螺旋式打印一个二维数组。如 1 16 3 2 17 8 6 4 3 23 2 5 7 8 12 21 2 4 6 13 要求打印后顺序为:1 16 3 2 17 23 12 13
2008-11-13 17:52:00 8776 11
原创 BREW平台上的多任务实现
BREW的执行环境是基于事件的并且不支持多线程,长时间的任务往往会导致重启,因此不推荐使用长时间的任务。那么在实际的开发过程中我们如何解决这一问题呢?幸运的是BREW与生俱来的回调机制为我们提供了解决方案。本文将介绍BREW环境下实现多任务协调运行的方法,实际上也是为快速简单的进行多任务应用的开发提供了一个框架。 BREW的回调机制 在BREW平台上同一时刻只
2007-10-29 15:10:00 2930
原创 C++中的异常处理(二)——抛出异常
上篇文章中我们简单了解了C和C++中异常处理的不同方式。显然C++中提供的异常处理的功能给我们的编程带来了很大的方便,让我们从处理错误的复杂逻辑中解脱出来,也让我们的代码更加清晰。从这篇文章开始我们就来具体介绍一下C++中的异常处理。一、抛出异常如果在程序代码中出现了一些异常情况, 程序员可以创建一个包含错误信息的对象并把它抛出当前语境,这种方法被称为“抛出异常”。 class
2007-10-26 17:53:00 1564
原创 C++中的异常处理(一)——C和C++中异常处理的区别
增强代码健壮性的最主要的途径就是增强程序的错误恢复能力,但是在实际编写程序时,人们往往会忽略程序的出错处理,就好像程序永远会在无错状态下运行一样。人们为什么会如此厌恶处理程序可能出现的错误,最主要的原因有两个:一是对程序的错误处理会导致程序代码量的增加,造成代码膨胀;二是这些错误处理的代码会大大降低代码的可读性。C语言中所采用的错误处理方法是一种所谓的紧耦合的方法,就
2007-10-26 16:03:00 1233
转载 BREW应用的c++实现注意点
BREW应用的c++实现注意点 从VC6.0的调试器来说吧,肯定支持C++语言了,对于ARM或者GCC来说,也是有可用的C++编译器,而且任何支持BREW的手机都可以运行通过ARM或者GCC编译连接出来的目标代码,所以从环境来说,BREW开发是可以应用C++语言的。 做过BREW开发的都知道,不论是用IWINDOW还是StateMachine,都是应用的C语言,而且编译器也是
2007-01-08 13:23:00 1295
原创 在BREW中使用Gzip压缩来减少应用程序包的大小
目前在无线增值业务中,涉及图像、声音和数据处理的应用占很大比例,但由于掌上系统的存储能力和处理能力受到很大限制,因此目前BREW应用的大小一般都要求比较小。如果图像在整个应用中占很大比例,那么减小图像的存储空间就成为非常迫切的要求。本文从一个开发者的角度阐述了一种解决存储空间限制的方法,使用Gzip压缩工具结合BREW IUnzipAStrem接口可以将资源的大小减小到原来的1/3左右。
2006-12-30 17:05:00 2115 1
转载 BREW接口的继承和多态
转自http://blog.csdn.net/pengzhenwanli/archive/2006/05/29/761156.aspx BREW接口的继承和多态 BREW平台支持C和C++开发语言,而C语言是不支持面向对象的,只有C++支持面向对象的程序设计,因此BREW中必须使用C语言模拟实现C++语言面向对象机制。在C++中继承是基于C++内存中数据是按照一定顺序
2006-12-30 11:43:00 1192 1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人