随笔分类 -  Linux/Unix

摘要:1.虚拟内存,在32位平台下,一个进程一般拥有3g的虚拟内存地址,这些虚拟内存地址将包含,代码区,数据区,堆区,栈区等,事实上一个进程在初始化的时候,虚拟内存地址需要通过一个地址映射表才能转换为实际的物理地址,一个进程在初始化的时候操作系统不会为其分配很多的物理地址,当程序中有动态分配内存的请求时,操作系统会调整分配给进程的物理地址。2.malloc的原理:malloc是c的一个库函数,不同平台下有不同的实现,基本思想是,先看看当前进程的堆空间有没有够用的内存,有的话就返回,否则向操作系统要新的内存,此时会调用sbrk,brk,mmap等函数来实现,其中sbrk是对brk的封装也是属于c的库函 阅读全文
posted @ 2013-12-30 10:35 xpray 阅读(458) 评论(0) 推荐(0)
摘要:1 #include 2 #include 3 #include 4 5 int flag; 6 7 void fun(int signo) { 8 if (SIGINT == signo) { 9 printf("got SIGINT\n");10 flag++;11 }12 13 if (SIGQUIT == signo) {14 printf("got SIGQUIT\n");15 flag++;16 ... 阅读全文
posted @ 2013-12-27 10:32 xpray 阅读(731) 评论(0) 推荐(0)