- 博客(25)
- 资源 (2)
- 收藏
- 关注
转载 关于字节对齐
1、 sizeof应用在结构上的情况 请看下面的结构: struct MyStruct { double dda1; char dda; int type }; 对结构MyStruct采用sizeof会出现什么结果呢?sizeof(MyStruct)为多少呢?也许你会这样求: sizeof(MyStruct)=sizeof(double)+sizeof(char
2013-06-14 16:46:21
1188
转载 Makefile以及链接库
makefile示例:makefileobj:main.o fun1.o fun2.o //makefileobj 生成的执行文件名g++ -o makefileobj main.o fun1.o fun2.o //命令前面一定要空出一个的位置来main.o:main.cpp fun1.h fun2.hg++ -c main.cpp
2012-10-04 11:22:02
4474
转载 :>/dev/null 2>&1 的作用
shell中可能经常能看到:>/dev/null 2>&1命令的结果可以通过%>的形式来定义输出/dev/null 代表空设备文件> 代表重定向到哪里,例如:echo "123" > /home/123.txt1 表示stdout标准输出,系统默认值是1,所以">/dev/null"等同于"1>/dev/null"2 表示stderr标准错误& 表示等同于的意思,2
2012-09-04 17:04:19
1330
原创 MakeFile例子
include $(ICH_MAKE_DEF)MAKEFILE = makefileEXE=PreMain#ICH_PRE_DIR = /DE/vobs/cvob_ich2/ich_pre_editCOMMONINC = -I../../common/inc/ -I../../asn1/COMMONLINK = -L../../common/lib -lpubpara -lp
2012-09-04 16:56:41
636
转载 Lua脚本入门
Lua脚本在C++下的舞步(一)http://www.acejoy.com/thread-1931-1-1.html Lua脚本在C++下的舞步(二)http://www.acejoy.com/thread-1939-1-1.html Lua脚本在C++下的舞步(三)http://www.acejoy.com/thread-1953-1-1.html
2012-09-04 16:40:54
562
原创 各种排序算法实例
冒泡排序: void BubbleSort(int* pData,int Count){ int i,j; bool exchange = true; for (i=Count-1; i>0 && exchange; i--) { exchange = false; for (j=0; j {
2012-08-07 20:03:46
464
原创 shell笔记
12-5-2 数字比较 在Bash Shell编程中的关系运算有别于其他编程语言,用表12-2中的运算符用test语句表示大小的比较。 表12-2 用test比较的运算符 运算符号 含 义 -eq
2012-07-16 11:30:09
358
原创 C++面试题收集
一、请问如下代码会出现什么错误?#include #include using namespace std;int main(){ list mylist; list::iterator it; for(int i=1; i for (it=mylist.begin(); it != mylist.end(); it++)
2012-07-10 09:15:20
903
转载 GDB调试程序(二)
GDB的命令概貌———————启动gdb后,就你被带入gdb的调试环境中,就可以使用gdb的命令开始调试程序了,gdb的命令可以使用help命令来查看,如下所示: /home/hchen> gdb GNU gdb 5.1.1 Copyright 2002 Free Software Foundation, Inc. GDB is free softw
2012-07-07 16:17:56
506
转载 GDB调试程序(一)
用GDB调试程序GDB概述————GDB是GNU开源组织发布的一个强大的UNIX下的程序调试工具。或许,各位比较喜欢那种图形界面方式的,像VC、BCB等IDE的调试,但如果你是在UNIX平台下做软件,你会发现GDB这个调试工具有比VC、BCB的图形化调试器更强大的功能。所谓“寸有所长,尺有所短”就是这个道理。一般来说,GDB主要帮忙你完成下面四个方面的功能: 1、启动你的
2012-07-07 16:16:04
485
转载 Linux下makefile通用模版
#******************************************************************************* # File name : Makefile # Author : weiming # Date : 2012/06/14 # cmd : make #***************
2012-06-28 19:17:51
777
转载 Linux下多路复用IO接口 epoll select poll 的区别
我们先来介绍下nginx nginx :支持高并发连接.官方测试的是5w并发连接但在实际生产中可制成2-4w并发连接数,得益于nginx使用最新的epoll(linux 2.6内核)和kqueue(freebsd)网络I/O模型.而apache使用的则是传统的select模型,其比较稳定的prefork模式为多进程模式,需要经常派生子进程,所消耗的CPU等服务器资源要比nginx高的多.
2012-06-24 10:30:37
1120
转载 epoll为什么比select这么快?
epoll是多路复用IO(I/O Multiplexing)中的一种方式,但是仅用于linux2.6以上内核,在开始讨论这个问题之前,先来解释一下为什么需要多路复用IO.以一个生活中的例子来解释.假设你在大学中读书,要等待一个朋友来访,而这个朋友只知道你在A号楼,但是不知道你具体住在哪里,于是你们约好了在A号楼门口见面.如果你使用的阻塞IO模型来处理这个问题,那么你就只能一直守候在A号
2012-06-24 10:29:12
1631
转载 TCP三次握手
在server和client调用socket生成套接字后,server调用listen监听某个端口后,调用accept来等待client的连接,accept本身是阻塞的,直到收到client的请求后,accept才返回client调用connect函数项server所在主机发起连接请求,连接的报文中除了包含server的iP和端口外,还包含了client端初始化的序号SYN a 和MSS=14
2012-06-22 10:35:46
493
转载 Linux并发服务器代码实现
我们知道linux的UDP是面向无连接的,但是TCP是面向连接,所以UDP服务器可以并发处理,但是TCP由于是面向连接,一次通信只能和一个客户端相连,所以要想实现并发处理,可以使用fork()创建子进程来实现,编程模式如下: 服务端:#include #include #include #include #include #include #incl
2012-06-22 09:40:05
1020
转载 C++中虚析构函数的作用
我们知道,用C++开发的时候,用来做基类的类的析构函数一般都是虚函数。可是,为什么要这样做呢?下面用一个小例子来说明: 有下面的两个类:class ClxBase{public: ClxBase() {}; virtual ~ClxBase() {}; virtual void DoSomething() { cout "Do
2012-06-20 10:56:21
437
转载 简单工厂模式,工厂方法模式,抽象工厂模式 比较
简单工厂模式:简单工厂模式的工厂类一般是使用静态方法,通过接收的参数不同来返回不同的对象的实例,不修改代码的话,是无法扩展的 工厂方法模式工厂方法模式是针对每一种产品提供一个工厂类,通过不同的工厂实例来创建不同的产品实例。在同一等级结构中,支持增加任意产品抽象工厂模式:抽象工厂模式应对产品族的概念。比如说,每个汽车公司可能要同时生产轿车,火车,客车,那么每一个工
2012-06-19 14:11:41
717
转载 组合,关联,聚合的区别
类间关系在类图中,除了需要描述单独的类的名称、属性和操作外,我们还需要描述类之间的联系,因为没有类是单独存在的,它们通常需要和别的类协作,创造比单独工作更大的语义。在UML类图中,关系用类框之间的连线来表示,连线上和连线端头处的不同修饰符表示不同的关系。类之间的关系有继承(泛化)、关联、聚合和组合。(1)继承:指的是一个类(称为子类)继承另外的一个类(称为基类)的功能,并增加它自己的新功能
2012-06-19 14:09:18
1003
转载 为什么需要字节对齐?
文章最后本人做了一幅图,一看就明白了,这个问题网上讲的不少,但是都没有把问题说透。 一、概念 对齐跟数据在内存中的位置有关。如果一个变量的内存地址正好位于它长度的整数倍,他就被称做自然对齐。比如在32位cpu下,假设一个整型变量的地址为0x00000004,那它就是自然对齐的。 二、为什么要字节对齐 需要字节对齐的根本原因在于CPU访问数
2012-06-14 11:36:54
37419
5
原创 Unix多线程编程技术
posix pthreads库提供了一系列的编写多线程程序的函数主要包括1. 创建和中止线程函数2. 同步线程和对程序资源加锁函数3. 管理线程时序函数一般地使用线程时序管理函数会复杂你的程序算法不仅如此在你移植你在单处理机上的多线程程序到多处理机环境时也可能会带来麻烦所以这里不讨论它每一个线程都可以访问到相同的全局变量和文件但每个线程也有它自己的堆栈和寄存器pth
2012-06-12 18:21:04
1290
转载 linux下socket通信程序例子
[代码] c代码 server部分view sourceprint?001server.c 002 003====================================================================
2012-06-12 17:47:00
4609
转载 程序员必须掌握的基本正则表达式<转>
正则表达式是什么? 正则表达式是使用一套特殊符号模式做为表达格式的字符串,主要用处是描述和解析文本。许多程序员(甚至一些不错的高手)都无视(也不用)正则表达式,我认为这是一个耻辱,因为在解决很多问题的时候,正则表达式常常让我们有得心应手的感觉。一旦你掌握了,就会发现它能解决无数真实世界的问题。 正则表达式的工作方式就象Windows或者*nix系统里面的文件名替代符 - 你
2012-06-05 11:17:52
663
转载 散列表(哈希表)工作原理<转>
1. 引言 哈希表(Hash Table)的应用近两年才在NOI中出现,作为一种高效的数据结构,它正在竞赛中发挥着越来越重要的作用。 哈希表最大的优点,就是把数据的存储和查找消耗的时间大大降低,几乎可以看成是常数时间;而代价仅仅是消耗比较多的内存。然而在当前可利用内存越来越多的情况下,用空间换时间的做法是值得的。另外,编码比较容易也是它的特点之一。 哈希表
2012-06-05 11:13:38
681
转载 oracle什么时候需要commit
今天在oracle的SQL plus 中执行了删除和查询操作,然后在PL/SQL中也执行查询操作,语句一样,结果却不一样,让我大感郁闷,后来才突然想到可能是两边数据不一致造成的,但是为什么不一致呢,就是没用commit,在网上查了一下,大概是这样说的:DML语言,比如update,delete,insert等修改表中数据的需要commit;DDL语言,比如create,drop等改变表
2012-06-05 10:37:17
55429
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人