- 博客(36)
- 资源 (6)
- 收藏
- 关注
转载 C语言字节对齐详解
一、什么是对齐,以及为什么要对齐:1. 现代计算机中内存空间都是按照byte划分的,从理论上讲似乎对任何类型的变量的访问可以从任何地址开始,但实际情况是在访问特定变量的时候经常在特定的内存地址访问,这就需要各类型数据按照一定的规则在空间上排列,而不是顺序的一个接一个的排放,这就是对齐。2. 对齐的作用和原因:各个硬件平台对存储空间的处理上有很大的不同。一些平台对某些特定类型的数据只能从某些
2012-03-12 23:19:05
564
转载 Linux多线程编程
线程是计算机中独立运行的最小单位,运行时占用很少的系统资源。可以把线程看成是操作系统分配CPU时间的基本单元。一个进程可以拥有一个至多个线程。它线程在进程内部共享地址空间、打开的文件描述符等资源。同时线程也有其私有的数据信息,包括:线程号、寄存器(程序计数器和堆栈指针)、堆栈、信号掩码、优先级、线程私有存储空间。为什么有了进程的概念后,还要再引入线程呢?使用多线程到底有哪些好处?什么的
2011-11-15 00:18:08
728
转载 Linux进程间通信——管道
Linux进程间通信机制:1.同一主机进程间通信机制: Unix方式:有名管道FIFO、无名管道PIPE、信号Signal SystemV方式:信号量、消息队列、共享内存 2.网络通信:RPC(Remote Procedure Call)、Socket 管道管道是进程间通信中最古老的方式,它包括无名管道和有名管道两种,前者可用于具有亲缘关系进程间的通信,即可用于父进
2011-11-15 00:17:31
716
转载 Linux进程间通信——共享内存
共享内存是运行在同一台机器上的进程间通信最快的方式,因为数据不需要在不同的进程间复制。通常由一个进程创建一块共享内存区,其余进程对这块内存区进行读写。共享内存往往与其它通信机制,如信号量结合使用,来达到进程间的同步及互斥。首先要用的函数是shmget,它获得一个共享存储标识符。 #i nclude #i nclude #i nclude
2011-11-15 00:16:54
588
转载 Linux线程同步之条件变量
与互斥锁不同,条件变量是用来等待而不是用来上锁的。条件变量用来自动阻塞一个线程,直到某特殊情况发生为止。通常条件变量和互斥锁同时使用。条件变量使我们可以睡眠等待某种条件出现。条件变量是利用线程间共享的全局变量进行同步的一种机制,主要包括两个动作:一个线程等待"条件变量的条件成立"而挂起;另一个线程使"条件成立"(给出条件成立信号)。条件的检测是在互斥锁的保护下进行的。如果一个条件为假,一个
2011-11-15 00:16:15
660
转载 untu基本命令整理
sudo:如何设定/改变/启用 root 使用者的密码:sudo passwd root当你使用完毕后屏蔽 root 帐号 使用: sudo passwd -l root这个将锁住 root 帐号. 如何在终端机模式下切换到 root 身份: sudo -s -H 在线安装程序:sudo apt-get install g++pt-get最常用参数:update
2011-11-15 00:06:48
1176
转载 Makefile全解析
什么是 makefile或许很多 Winodws 的程序员都不知道这个东西,因为那些 Windows的 IDE 都为你做了这 个工作,但我觉得要作一个好的和 professional 的程序员,makefile 还是要懂。这就好像现在有这么多的 HTML 的编辑器,但如果你想成为一个专业人士,你还是要了解 HTML 的标识的含义。特别在 Unix 下的软件编译,你就不能不自己写 makefil
2011-11-15 00:05:19
951
转载 GDB调试程序(完全手册)
GDB概述 1使用GDB GDB中运行UNIX的shell程序 在GDB中运行程序 2调试已运行的程序 两种方法: 3暂停 / 恢复程序运行 一、设置断点(BreakPoint) 二、设置观察点(WatchPoint) 三、设置捕捉点(CatchPoint) 四、维护停止点 五、停止条件维护 六、为停止点设定运行命令 七
2011-11-15 00:03:59
1026
转载 50个c/c++源代码网站
C/C++是最主要的编程语言。这里列出了50名优秀网站和网页清单,这些网站提供c/c++源代码 。这份清单提供了源代码的链接以及它们的小说明。我已尽力包括最佳的C/C++源代码的网站。这不是一个完整的清单,您有建议可以联系我,我将欢迎您的建 议,以进一步加强这方面的清单。 添加:http://www.boost.org/1、http://snippets.dzone.com/tag/c
2011-11-15 00:00:10
644
转载 Java反射机制
问题: 在运行时,对一个JAVA类,能否知道属性和方法;能否调用它的任意方法? 答案是可以的,JAVA提供一种反射机制可以实现。 目录 什么是JAVA的反射机制 JDK中提供的Reflection API JAVA反射机制提供了什么功能获取类的Class对象 获取类的Fields 获取类的Method 获取类的Constructor 新建类的实例
2011-11-08 14:30:00
967
转载 Hibernate之session
Hibernate在对资料库进行操作之前,必须先取得Session实例,相当于JDBC在对资料库操作之前,必须先取得Connection实例, Session是Hibernate操作的基础,它不是设计为执行绪安全(Thread-safe),一个Session由一个执行绪来使用。
2011-08-04 15:21:24
500
转载 JBPM4.4中嵌入自己的用户体系
很多时候,JBPM自己提供的用户系统是不够用的,这时候就要求我们自己去扩展自己的用户体系。JBPM允许外挂一个用户体系。如果想嵌入自己的用户体系,只需如下几步:第一步: 创建MyUserImpl,MyGroupImpl,MyMembershipImpl三个类
2011-08-04 15:13:27
985
转载 滑动窗口机制
(1).窗口机制 滑动窗口协议的基本原理就是在任意时刻,发送方都维持了一个连续的允许发送的帧的序号,称为发送窗口;同时,接收方也维持了一个连续的允许接收的帧的序号,称为接收窗口。发送窗口和接收窗口的序号的上下界不一定要一样,甚至大小也可以不同。不同的滑动窗口协议窗口大小
2011-08-03 12:07:44
577
原创 C/C++经典面试题
C/C++经典面试题 一、找错题1、strcpy试题1:void test1(){ char string[10]; char* str1 = "0123456789"; strcpy( string, str1 );} 试题2:void test2(){ char string[10], str1[10]; i
2011-07-01 10:49:00
965
原创 C++编程基础之函数指针
1、函数指针 定义:函数指针是指指向函数的指针。像其他指针一样,函数指针也指向特定的类型。函数类型由其返回值以及形参表确定,而与函数名无关。e.g void (*pf) ( char,int );这个语句将pf声明指向函数的指针,它所指向的函数带有一个char类型,一个int类型,返回类型为void。我们可以这样理解:我们怎么定义普通的指针呢,如我们定义一个int型的指针,i
2011-06-25 16:47:00
1999
转载 C++ 虚函数表解析
前言 C++中的虚函数的作用主要是实现了多态的机制。关于多态,简而言之就是用父类型别的指针指向其子类的实例,然后通过父类的指针调用实际子类的成员函数。这种技术可以让父类的指针有“多种形态”,这是一种泛型技术。所谓泛型技术,说白了就是试图使用不变的代码来实现可变的算法。比如:模板技术,RTTI技术,虚函数技术,要么是试图做到在编译时决议,要么试图做到运行时决议。
2011-06-24 14:31:00
531
转载 C/C++内存问题检查利器—Purify (五)
本文来自优快云博客,转载:http://blog.youkuaiyun.com/haoel/archive/2003/12/16/2904.aspx十、 设置WatchPoint你可以在你的程序中,对你所想监控的程序设置一些WatchPoint,以方便于你对程序进行调试,或更容易找出问题的原因。就像我前面说,Purify可以找到你的内存泄露,但其不能找到内存泄露的原因,你可以通过设置WatchP
2011-06-24 00:47:00
913
转载 C/C++内存问题检查利器—Purify (四)
本文来自优快云博客,转载:http://blog.youkuaiyun.com/haoel/archive/2003/12/16/2903.aspx七、 Purify的退出码像UNIX下的软件,一般都会提供和别的应用程序的接口,像上面的生成文本文件,也是给别的应用程序提供接口的一种方式。这里,我们所要讲述的是Purify的退出码,我们知道程序都有退出码,以提供给别的程序或操作
2011-06-24 00:43:00
581
转载 C/C++内存问题检查利器—Purify(三)
本文来自优快云博客,转载:http://blog.youkuaiyun.com/haoel/archive/2003/12/15/2902.aspx 五、 文件描述符问题在上面的内存问题表中,对于大多数的内存问题来说,相信对于熟悉C/C++的程序员,并不陌生。有一些关于Watchpoint和文件描述符的内容,可能会让你看得比较模糊,对于Watchpoint,我会在后面讲述。这
2011-06-23 20:05:00
609
转载 C/C++内存问题检查利器—Purify (二)
本文来自优快云博客,转载:http://blog.youkuaiyun.com/haoel/archive/2003/12/11/2901.aspx 三、 示例假设我们现在有这样一段程序:hello.c #include #include static char *helloWorld = "Hello, World"; main(){
2011-06-23 17:52:00
691
转载 C/C++内存问题检查利器—Purify (一)
C/C++内存问题检查利器——Purify 本文来自优快云博客,转载:http://blog.youkuaiyun.com/haoel/archive/2003/12/11/2900.aspx一、 引言 我们都知道软件的测试(在以产品为主的软件公司中叫做QA—Quality Assessment)占了整个软件工程的30% -50%,但有这么一种说法,即使是最优秀测试专家设计出来的测试
2011-06-23 15:40:00
760
转载 eclipse开发c++之MinGw+eclipse+cdt安装
一.环境的安装与配置首先,当然必须要做的,就是下载软件和插件。(1) JDK(jdk6)(2) Eclipse(3.6)(3) CDT插件(cdt-master-7.0.2)(4) MinGW编译器(我用的是MinGW 5.1.6)其次就是环境的配置,对于用过Eclipse编写过Java程序的人来说JDK的环境变量配置应该很熟,主要介绍下MinGw的配置。1.MinGW 5.1.6的安装首先下
2011-06-23 11:20:00
3812
转载 Hibernate快速入门
其实Hibernate本身是个独立的框架,它不需要任何web server或application server的支持。然而,大多数的Hibernate入门介绍都加入了很多非Hibernate的东西,比如: Tomcat, Eclipse, Log4J,Struts, XDoclet, 甚至JBoss。这容易让人产生Hibernate复杂难懂的误解,特别是打击了初学者的积极性。 在这篇文章将不涉及Eclipse, log4j, Struts, Tomcat, XDoclet,和JBoss。本文的
2010-11-04 18:55:00
600
原创 不要随便使用CreateThread
CreateThread,是WIN32 最直接创建的thread API函数.但是如果在线程回调(CALLBACK)函数中使用一些标准C的函数,当线程正常退出的时候,即使你释放了所有用户资源,仍然会有资源的泄漏的隐患。主要原因是线程中都需要有额外的资源,来保证一些标准C函数的线程安全,这些资源的创建是在C的标准函数被调用的时候,但是在thread退出的时候,没法通过正常途径释放。<br />如果在你的回调函数中使用一些标准C函数,最好使用_beginthreadex,_endthreadex替换掉原来的Cr
2010-11-03 17:25:00
960
转载 几种同步手段(互斥量,信号量,事件,临界区)
<br />环境:<br /><br />VISTA+VC6<br />双核<br /><br />这个环境对于下面的有些效果来说,十分关键。<br />在我下面的练习中,如果是单核,那么两个线程无法真正的同时执行,<br />而单个操作的耗时也并不长,可能看不到互斥访问中的一些问题。<br />在VISTA之前的一些系统,时间片比较大,也不容易看到。。<br /><br />设计目标:<br /><br />模拟一个售票系统,有两个线程可以出售,总共100张票。<br />中间打印出出售的信息。<br /
2010-11-03 17:23:00
1168
转载 C/C++函数变长参数列表实现
在C编译器通常提供了一系列处理可变参数的宏,实现就像printf()那样的变长参数列表,这样可以屏蔽不同的硬件平台造成的差异,增加程序的可移植性。这些宏包括va_start、 va_arg和va_end等,这些宏都是在头文件<stdarg.h>里定义的。 <br />采用ANSI标准形式时,参数个数可变的函数的原型声明是:<br />type funcname(type para1, type para2, ...)<br />这种形式至少需要一个普通的形式参数,后面的省略号不表示省略,而是函数原型的一部分
2010-11-03 17:17:00
735
转载 WinSocket I/O Methods
Socket Modes :Blocking Mode(阻塞式)和Noblocking Mode(非阻塞式)
2010-11-03 17:06:00
533
转载 Socket I/O模型全接触
本文简单介绍了当前Windows支持的各种Socket I/O模型,如果你发现其中存在什么错误请务必赐教。 一:select模型 二:WSAAsyncSelect模型 三:WSAEventSelect模型 四:Overlapped I/O 事件通知模型 五:Overlapped I/O 完成例程模型 六:IOCP模型
2010-11-03 16:54:00
382
转载 Socket编程
TCP/IP(Transmission Control Protocol/Internet Protocol)即传输控制协议/网间协议,是一个工业标准的协议集,它是为广域网(WANs)设计的。UDP(User Data Protocol,用户数据报协议)是与TCP相对应的协议。
2010-11-03 16:51:00
401
转载 ARP协议解码详解
ARP,全称Address Resolution Protocol,中文名为地址解析协议,它工作在数据链路层,在本层和硬件接口联系,同时对上层提供服务。
2010-11-03 16:48:00
459
转载 WinSock网络编程实用宝典
<br />一、TCP/IP 体系结构与特点<br /> 1、TCP/IP体系结构<br /> TCP/IP协议实际上就是在物理网上的一组完整的网络协议。其中TCP是提供传输层服务,而IP则是提供网络层服务。TCP/IP包括以下协议:(结构如图1.1)<br /><br />(图1.1) <br /> IP: 网间协议(Internet Protocol) 负责主机间数据的路由和网络上数据的存储。同时为ICMP,TCP, UDP提供分组发送服务。用户进程通常不需要涉及这一层。<br /><br /
2010-11-03 16:34:00
691
转载 Windows Sockets错误码
Windows Sockets在头文件winsock.h中定义了所有的错误码,它们包括以“WSA”打头的Windows Sockets实现返回的错误码和Berkeley Sockets定义的错误码全集。定义Berkeley Sockets错误码是为了确保原有软件的可移植性。A.1 Windows Sockets错误码列表 表A.1列出了WSAGetLastError()函数返回的可能错误码和它们的解释,它们可分为四个部分。 错误码的第一部分是用来解决在不同的C编译中对标准C错误码的
2010-11-03 16:00:00
613
原创 c++实现多线程之小试牛刀
<br />#include <cstdlib><br />#include <iostream><br />#include <windows.h><br />using namespace std;<br />CRITICAL_SECTION cs;<br />int a=0;<br />DWORD WINAPI ThreadFuncA(LPVOID lp)<br />{<br /> while(a<100)<br /> {<br /> EnterCriticalSection( & cs);<br
2010-08-16 22:01:00
572
转载 orge安装与配置
<br />Orge安装与配置<br /> <br />一.安装并配置DirectX SDK<br /><br /> 1.把DirectX SDK里的include文件夹添加进包含文件中<br /> 2.把DirectX SDK里的Lib/x86文件夹添加进库文件中<br /> 3.把DirectX SDK里的Utilities/Bin/x86添加进可执行文件中<br /><br />二、安装并配置OGRE SDK 1.7<br /><br /> 1.把OgreSDK_vc9_v1-
2010-06-12 02:08:00
4478
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人