- 博客(23)
- 资源 (2)
- 收藏
- 关注
转载 Linux下高并发socket最大连接数所受的各种限制
1、修改用户进程可打开文件数限制在Linux平台上,无论编写客户端程序还是服务端程序,在进行高并发TCP连接处理时,最高的并发数量都要受到系统对用户单一进程同时可打开文件数量的限制(这是因为系统为每个TCP连接都要创建一个socket句柄,每个socket句柄同时也是一个文件句柄)。可使用ulimit命令查看系统允许当前用户进程打开的文件数限制:[speng@as4 ~]$ ulimit
2014-05-27 00:15:26
552
转载 cgi的表单处理
1.用c语言写cgi程序代码用这个:http://wenda.sogou.com/question/28759329.html再贴一下:[xhtml] view plaincopy#include stdio.h > #include stdlib.h > int main(void) {
2014-04-03 13:52:04
10490
转载 google protocol buffer原理及使用
简介什么是 Google Protocol Buffer? 假如您在网上搜索,应该会得到类似这样的文字介绍:Google Protocol Buffer( 简称 Protobuf) 是 Google 公司内部的混合语言数据标准,目前已经正在使用的有超过 48,162 种报文格式定义和超过 12,183 个 .proto 文件。他们用于 RPC 系统和持续数据存储系统。Protocol
2013-09-04 17:14:22
605
转载 求最长重复子串的长度
给定一个字符串,求最长重复子串的长度。(最长重复字串之间可以有重叠的部分,如ababa,最长重复子串为aba,长度为3)如果程序至多可以处理MAXN个字符,这些字符被存储在数组c中:#define MAXN 5000000char c[MAXN], *a[MAXN];在读取输入时,首先初始化a,这样,每个元素就都指向输入字符串中的相应字符:while (ch = getchar
2012-10-04 22:58:36
1101
转载 STL源码剖析之空间配置器
看过STL空间配置器的源码,总结一下: 1、STL空间配置器:主要分三个文件实现,stl_construct.h 这里定义了全局函数construct()和destroy(),负责对象的构造和析构。stl_alloc.h文件中定义了一、二两级配置器,彼此合作,配置器名为alloc. stl_uninitialized.h 这里定义了一些全局函数,用来填充(fill)或复制(copy
2012-09-28 22:06:50
535
原创 字符串中单词反转
比如字符串”hello, I am a student!“ ,将其反转成”student!a am I hello,”,不能使用字符串函数。思路:先将整个字符串反转,然后再将字符串中每个单词反转代码:#includevoid reverse(char *ch , int begin , int end);int main(){ char p[] = "I am a
2012-09-26 23:33:39
581
原创 判断字符串是否是IPV4
判断一个字符串是否是IPv4(不能用字符串函数)。 首先我们判断字符串的长度是否大于6且小于16,然后根据字符 ‘.’ 逐个划分字符串; 其次判断每个划分的长度是否大于0且小于4; 然后判断每个划分中每个字符是否大于等于字符‘0’且小于等于字符‘9’; 最后把每个划分转化成整数,判断其是否大于等于0且小于等于2
2012-09-26 23:25:27
1400
原创 虚祈构函数
class base{public: base(){} ~base(){ cout virtual void fun() { cout }};class derived : public base{public: derived(){}
2012-09-26 01:01:47
830
转载 数据库范式速记
一个好的 , 合适的关系模式要求能消除数据冗余 , 数据不一致以及由此带来的各种操作异常现象 ,规范化理论就是用来改造这种关系模式的,通过分解关系模式消除不合理的数据依赖,从而解决数据冗余和操作异常的问题。 设计不良的关系模式会带来的问题: 1.数据冗余 2.插入异常 3.删除异常
2012-09-24 23:15:45
840
转载 对于一个入栈序列输出所有的出栈序列
网上有很多解法,但个人感觉不够清晰。下面本人献丑来写下自己的解法。力求简明易懂。首先这是个卡特兰数,学过组合数学的同学都知道。没学过的可以看下下面这个例子。有2n个人排成一队进入剧场。入场费5元。其中只有n个人有一张5元钞票,另外n人只有10元钞票,剧院无其它钞票可找零,问有多少中方法使得只要有10元的人买票,售票处就有5元的钞票找零?(将持5元者到达视作将5元入栈,持10元者到达视作使栈中某
2012-09-24 21:49:11
4028
原创 内存对齐
什么是对齐,以及为什么要对齐: 现代计算机中内存空间都是按照byte划分的,从理论上讲似乎对任何类型的变量的访问可以从任何地址开始,但实际情况是在访问特定变量的时候经常在特定的内存地址访问,这就需要各类型数据按照一定的规则在空间上排列,而不是顺序的一个接一个的排放,这就是对齐。 对齐的作用和原因:各个硬件平台对存储空间的处理上有很大的不同。一些平台对某些特定类型的数据只能从某些特定地址
2012-09-22 00:50:44
443
转载 c++虚函数的原理及实现
虚函数是在类中被声明为virtual的成员函数,当编译器看到通过指针或引用调用此类函数时,对其执行晚绑定,即通过指针(或引用)指向的类的类型信息来决定该函数是哪个类的。通常此类指针或引用都声明为基类的,它可以指向基类或派生类的对象。 多态指同一个方法根据其所属的不同对象可以有不同的行为(根据自己理解,不知这么说是否严谨)。 举个例子说明虚函数、多态、早绑定和晚绑定:
2012-09-20 20:51:14
1005
转载 c中不安全的函数
C 中大多数缓冲区溢出问题可以直接追溯到标准 C 库。最有害的罪魁祸首是不进行自变量检查的、有问题的字符串操作(strcpy、strcat、sprintf 和 gets)。一般来讲,象“避免使用 strcpy()”和“永远不使用 gets()”这样严格的规则接近于这个要求。 今天,编写的程序仍然利用这些调用,因为从来没有人教开发人员避免使用它们。某些人从各处获得某个提示,但即使
2012-09-19 18:21:25
5991
原创 宏与内联函数
函数作为一种抽象机制,对解决大型复杂问题起到了很大作用。但是,由于函数调用时需要开销的,例如,函数调用时需要保护调用者的运行环境,进行参数传递,执行调用命令,为局部变量分配空间以及执行返回指令等,因此函数会带来程序执行效率的下降,特别是对一些小函数的频繁调用。 c++提供了两种解决上述问题的办法:宏定义和内联函数。 1.宏定义 宏定义是
2012-09-17 15:10:04
581
转载 大小端,字节序问题
总结:1、80X86使用小端法,网络字节序使用大端法。 2、二进制的网络编程中,传送数据,最好以unsigned char, unsigned short, unsigned int 来处理, unsigned short ,unsigned short 以网络字节序处理后再拷贝到发送的buffer里 3、结构体前要指定
2012-09-15 21:13:20
654
转载 c/c++内存泄露及检测
该死系统存在内存泄漏问题”,项目中由于各方面因素,总是有人抱怨存在内存泄漏,系统长时间运行之后,可用内存越来越少,甚至导致了某些服务失败。内存泄漏是最难发现的常见错误之一,因为除非用完内存或调用malloc失败,否则都不会导致任何问题。实际上,使用C/C++这类没有垃圾回收机制的语言时,你很多时间都花在处理如何正确释放内存上。如果程序运行时间足够长,如后台进程运行在服务器上,只要服务器不宕机就一直
2012-09-15 16:04:55
697
转载 c++内存分配
在C++中,内存分成5个区 : 堆、栈、自由存储区、全局/静态存储区和常量存储区。 栈,就是那些由编译器在需要的时候分配,在不需要的时候自动清除的变量的存储区。里面的变量通常是局部变量、函数参数等。在一个进程中,位于用户虚拟地址空间顶部的是用户栈,编译器用它来实现函数的调用。和堆一样,用户栈在程序执行期间可以动态地扩展和收缩。 堆,就是那些由new分配的内存块,他们的释放编译器
2012-09-14 16:43:36
324
转载 windows下的录放音
在 2440 win-ce5.0 下实现,录音、播放录音一、要用到得数据结构1 、 typedef struct tWAVEFORMATEX{ WORD wFormatTag; // format type WORD nChannels; // number of channels (i.
2012-07-18 18:08:14
656
原创 多线程的同步
在windows中线程间同步的方式有多种包括创建事件对象,互斥对象,临界区等一,创建事件对象 事件对象也属于内核对象,包含一个使用计数,一个用于指明该事件是一个自动重置的事件还是一个人工重置的事件的布尔值,另一个用于指明该事件处于已通知状态还是未通知状态的布尔值。 有两种不同类型的事件对象。一种是人工重置的事件,另一种是自动重置的事件。当人工重置的事件得到通
2012-05-14 23:25:01
290
转载 堆与栈
内存分配方式有三种:[1]从静态存储区域分配。内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在。例如全局变量,static变量。[2]在栈上创建。在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结束时这些存储单元自动被释放。栈内存分配运算内置于处理器的指令集中,效率很高,但是分配的内存容量有限。[3]从堆上分配,亦称动态内存分配。程序在运
2012-05-06 21:42:31
258
转载 new 与 malloc , realloc
(收集整理from web)1.malloc与free是C++/C语言的标准库函数,new/delete是C++的运算符。它们都可用于申请动态内存和释放内存2.对于非内部数据类型的对象而言,光用maloc/free无法满足动态对象的要求。对象在创建的同时要自动执行构造函数,对象在消亡之前要自动执行析构函数。由malloc/free是库函数而不是运算符,不在编译器控制权限之内,不能够
2012-05-06 21:35:39
323
原创 全排列的递归和非递归解法
输入n个整数,然后输出其全排列,如输入:3,输出:1 2 3 ,1 3 2 ,2 1 3 , 2 3 1 , 3 1 2 ,3 2 1.递归解法:思想:如2,3的全排列是以2开头的3的全排和以3开头2的全排,1,2,3的全排列是以1开头2 ,3的全排,以2开头1,3的全排和以3开头1,2的全排 。如此就可以用递归了。#include#includevoid print(in
2011-12-18 14:25:48
366
原创 整数的划分问题
将一个整数划分为几个正整数之和,如6可以划分为 :5+1 , 4+2 4+1+1 , 3+3 , 3+2+1 , 3+1+1+1 , 2+2+2 , 2+2+1+1 , 2+1+1+1+1 ,1+1+1+1+1+1 现任意输入一个正整数(1-10)输出它的划分(如6的划分一样)。#includeint a[10];void print(int *b){int
2011-12-12 20:27:30
416
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人