linux共享内存

1) 用ftok()函数获得一个ID号.
2) shmget()用来开辟/指向一块共享内存的函数
3) shmat()将这个内存区映射到本进程的虚拟地址空间。
4) shmdt()函数删除本进程对这块内存的使用
5) shmctl() 控制对这块共享内存的使用

 

1) mmap()系统调用使得进程之间通过映射同一个普通文件实现共享内存。普通文件被映射到进程地址空间后,进程可以像访问普通内存一样对文件进行访问,不必再
调用read(),write()等操作
2) 系统调用munmap()在进程地址空间中解除一个映射关系,addr是调用mmap()时返回的地址,len是映射区的大小。当映射关系解除后,对原来映射地址的访问将导致段错误发生
3 一般进程在映射空间的对共享内容的改变并不直接写回到磁盘文件中,往往在调用munmap()后才执行该操作。可以通过调用msync()实现磁盘上文件内容与共享内存区的内容一致



 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。