09 2012 档案

转:共享内存的编程实现
摘要:1 /*共享内存允许两个或多个进程进程共享同一块内存(这块内存会映射到各个进程自己独立的地址空间) 2 从而使得这些进程可以相互通信。 3 在GNU/Linux中所有的进程都有唯一的虚拟地址空间,而共享内存应用编程接口API允许一个进程使 4 用公共内存区段。但是对内存的共享访问其复杂度也相应增加。共享内存的优点是简易性。 5 使用消息队列时,一个进程要向队列中写入消息,这要引起从用户地址空间向内核地址空间的一次复制, 6 同样一个进程进行消息读取时也要进行一次复制。共享内存的优点是完全省去了这些操作。 7 共享内存会映射到进程的虚拟地址空间,进程对其可... 阅读全文

posted @ 2012-09-18 10:49 白水月 阅读(448) 评论(0) 推荐(0)

转:Linux内存共享
摘要:昨天面试阿里被BS了,其中一问是内存如何共享,茫然不知所措,今日复习发现这篇好文,特定转过来备忘。共享内存是系统出于多个进程之间通讯的考虑,而预留的的一块内存区。在/proc/sys/kernel/目录下,记录着共享内存的一些限制,如一个共享内存区的最大字节数shmmax,系统范围内最大共享内存区标识符数shmmni等,可以手工对其调整,但不推荐这样做。一、应用共享内存的使用,主要有以下几个API:ftok()、shmget()、shmat()、shmdt()及shmctl()。1)用ftok()函数获得一个ID号.应用说明:在IPC中,我们经常用用key_t的值来创建或者打开信号量,共享内存 阅读全文

posted @ 2012-09-18 10:35 白水月 阅读(174) 评论(0) 推荐(0)

VS2008编译SQLite
摘要:一直都对数据库方面的技术不是很感冒,不过之前看到SQLite的介绍说最出版的SQLite核心代码才3W行,就心动的想看一下,可惜找的时候一直找不到那份3W行的SQLite了- -|,哪位有的话,希望可以发小弟一份,不胜感激。这里编译的是基于当前最新版的SQLite 3.7.14 (2012-09-06)下载源代码SQLite 3.7.14或者官网选择最新版本http://www.sqlite.org/download.html由于源码包里面没有 sqlite3.def (生成lib文件时需要,不然只能编译成dll),所以还需要下载sqlite.def文件下载sqlite3.defsqlite- 阅读全文

posted @ 2012-09-06 16:43 白水月 阅读(260) 评论(0) 推荐(0)

导航