摘要:
http://blog.csdn.net/dba_waterbin/article/details/11842799这些文章都来自网络,本人有幸拜读,独乐乐不如众乐乐如果您也有收藏计算机的科普性'趣文',欢迎跟帖,收录、共享!进程与线程的一个简单解释http://www.ruanyifeng.com/blog/2013/04/processes_and_threads.html怎样用三句话向一个 8 岁小孩解释什么是数据库http://www.zhihu.com/question/21091495趣文:计算机网络基本概念趣解http://www.admin10000.com/d 阅读全文
摘要:
函数声明int pthread_create(pthread_t*restrict tidp,const pthread_attr_t *restrict_attr,void*(*start_rtn)(void*),void *restrict arg);返回值若成功则返回0,否则返回出错编号参数第一个参数为指向线程标识符的指针。第二个参数用来设置线程属性。第三个参数是线程运行函数的起始地址。最后一个参数是运行函数的参数。注意 1.在编译时注意加上-lpthread参数,以调用链接库。因为pthread并非Linux系统的默认库,而是posix线程库,在Linux中将其作为一个库来使用,因此. 阅读全文
摘要:
内存的存储管理--段式和页式管理的区别转载自:http://blog.sina.com.cn/s/blog_4c6403ed01000bbb.html存储管理的基本原理内存管理方法内存管理主要包括内存分配和回收、地址变换、内存扩充、内存共享和保护等功能。下面主要介绍连续分配存储管理、覆盖与交换技术以及页式与段式存储管理等基本概念和原理。1.连续分配存储管理方式连续分配是指为一个用户程序分配连续的内存空间。连续分配有单一连续存储管理和分区式储管理两种方式。(1)单一连续存储管理在这种管理方式中,内存被分为两个区域:系统区和用户区。应用程序装入到用户区,可使用用户区全部空间。其特点是,最简单,适用 阅读全文
摘要:
参考:http://blog.sina.com.cn/s/blog_a3991033010137yv.html开篇举例: 假设变量x类型为int,位于地址0x100处,x = 0x01234567.地址范围为0x100~0x103的字节。则地址0x1000x1010x1020x103大端法01 234567小端法67452301 即大端法为高位在前,小端法为地位在前。 2.理论 所谓的大端模式,是指数据的低位(就是权值较小的后面那几位)保存在内存的高地址中,而数据的高位,保存在内存的低地址中,这样的存储模式有点儿类似于把数据当作字符串顺序处理:地址由小向大增加,而数据从高位往低位放... 阅读全文
摘要:
http://www.cnblogs.com/luliang/archive/2008/08/21/1272746.htmlhttp://www.chsi.com.cn/xy/com/201001/20100118/62031919.html全局变量(外部变量)是在函数的外部定义的,它的作用域为从变量的定义处开始,到本程序文件的末尾。在此作用域内,全局变量可以为本文件中各个函数所引用。编译时将全局变量分配在静态存储区。 有时需要用extern来声明全局变量,以扩展全局变量的作用域。 1. 在一个文件内声明全局变量 如果外部变量不在文件的开头定义,其有效的作用范围只限于定义处到文件终... 阅读全文
摘要:
static在c里面可以用来修饰变量,也可以用来修饰函数。先看用来修饰变量的时候。变量在c里面可分为存在全局数据区、栈和堆里。其实我们平时所说的堆栈是栈而不是堆,不要弄混。复制代码 代码如下:int a ;int main(){ int b ; int c* = (int *)malloc(sizeof(int));}a是全局变量,b是栈变量,c是堆变量。static对全局变量的修饰,可以认为是限制了只能是本文件引用此变量。有的程序是由好多.c文件构成。彼此可以互相引用变量,但加入static修饰之后,只能被本文件中函数引用此变量。static对栈变量的修饰,可以认为栈变量的生命周期延长到程. 阅读全文
摘要:
转载:http://www.cppblog.com/oosky/archive/2006/01/21/2958.html代码段:代码编译后的二进制文件数据段:全局变量和静态变量堆:malloc、new开辟的空间栈:局部变量(递归的实现基于栈)全局变量和静态变量分两种,一种是带初始化的,一种是未初始化的。可执行程序可以分为几个段,如代码段,主要放指令,数据段,存放已初始化的全局变量和静态变量,即那些初始化的值存放在该段中,该步骤是在链接是就做好了的。还有BSS段,存放未初始化的全局变量和静态变量,这个段在文件中不占空间,当程序加载进内存后,系统给这个段分配空间,并初始化为0,所以未初始化的全局变 阅读全文
摘要:
Debug版本包括调试信息,所以要比Release版本大很多(可能大数百K至数M)。至于是否需要DLL支持,主要看你采用的编译选项。如果是基于ATL的,则Debug和Release版本对DLL的要求差不多。如果采用的编译选项为使用MFC动态库,则需要MFC42D.DLL等库支持,而Release版本需要MFC42.DLL支持。Release Build不对源代码进行调试,不考虑MFC的诊断宏,使用的是MFC Release库,编译十对应用程序的速度进行优化,而Debug Build则正好相反,它允许对源代码进行调试,可以定义和使用MFC的诊断宏,采用MFC Debug库,对速度没有优化。一.. 阅读全文
摘要:
一、GCC编译过程参考:http://hi.baidu.com/zengzhaonong/item/c00e079f500adccab625314f------------------------------------- Pre-Processing cpp 预处理 Compiling ccl 编译 Assembling as 汇编 Linking ld 链接 命令gcc首先调用cpp进行预处理,在预处理过程中,对源代码文件中的文件包含(#include)、预编译语句(如宏定义#define等)进行分析。 当所有的目标文件都生成之后,gcc就调用ld来完成最后的关键性工作,这个阶段就是链接. 阅读全文
摘要:
文章来源:http://blog.163.com/niuxiangshan@126/blog/static/170596595201221942952676/当服务器close一个连接时,若client端接着发数据。根据TCP 协议的规定,会收到一个RST响应,client再往这个服务器发送数据时,系统会发出一个SIGPIPE信号给进程,告诉进程这个连接已经断开了,不要再写了。 根据信号的默认处理规则SIGPIPE信号的默认执行动作是terminate(终止、退出),所以client会退出。若不想客户端退出可以把SIGPIPE设为SIG_IGN 如: signal(SIGPIPE,SIG... 阅读全文