当前位置:  技术问答>linux和unix

请给出使用mmap实现进程间共享内存的程序代码

    来源: 互联网  发布时间:2017-03-18

    本文导语:  rt | 三、mmap()范例 下 面将给出使用mmap()的两个范例:范例1给出两个进程通过映射普通文件实现共享内存通信;范例2给出父子进程通过匿名映射实现共享内存。系统调用 mmap()有许多有趣的...

rt

|
三、mmap()范例

下 面将给出使用mmap()的两个范例:范例1给出两个进程通过映射普通文件实现共享内存通信;范例2给出父子进程通过匿名映射实现共享内存。系统调用 mmap()有许多有趣的地方,下面是通过mmap()映射普通文件实现进程间的通信的范例,我们通过该范例来说明mmap()实现共享内存的特点及注意 事项。

范例1:两个进程通过映射普通文件实现共享内存通信

范 例1包含两个子程序:map_normalfile1.c及map_normalfile2.c。编译两个程序,可执行文件分别为 map_normalfile1及map_normalfile2。两个程序通过命令行参数指定同一个文件来实现共享内存方式的进程间通信。 map_normalfile2试图打开命令行参数指定的一个普通文件,把该文件映射到进程的地址空间,并对映射后的地址空间进行写操作。 map_normalfile1把命令行参数指定的文件映射到进程地址空间,然后对映射后的地址空间执行读操作。这样,两个进程通过命令行参数指定同一个 文件来实现共享内存方式的进程间通信。

下面是两个程序代码:

/*-------------map_normalfile1.c-----------*/
#include 
#include 
#include 
#include 
typedef struct{
char name[4];
int  age;
}people;
main(int argc, char** argv) // map a normal file as shared mem:
{
int fd,i;
people *p_map;
char temp;

fd=open(argv[1],O_CREAT|O_RDWR|O_TRUNC,00777);
lseek(fd,sizeof(people)*5-1,SEEK_SET);
write(fd,"",1);

p_map = (people*) mmap( NULL,sizeof(people)*10,PROT_READ|PROT_WRITE,MAP_SHARED,fd,0 );
close( fd );
temp = 'a';
for(i=0; i

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 如何用x windows编程实现画矩形?~(请给出程序源码!重谢!~~急!!!!!!!!!!!!)
  • 请问运行编译EJB,需要在什么环境下,如何配置,请给出详细的说明,谢谢!在线......
  • 那有下载netscape for saloris 2.7,请给出具体 的链接,谢谢
  • 谁可以给出tomcat下载网址?在线给分。万分迫切!
  • 如何通过telnet登陆FreeBSD,哪位大哥给出详细说明
  • linux使用shell脚本,如何创建用户,并设置用户密码?能否给出示例?
  • 请各位老师给出个主意
  • 可视化IDE PYTHON。。源码公布。欢迎给出BUG。
  • 给出一个文件目录的路径,如何一次过删除所有在该目录下的文件?
  • 高手帮一下,Server用java DES加密,Client用c DES解密,c如何解密,能否给出程序!
  • 求LINUX的远程登陆软件,直接进入界面的那种,请给出地址,感激!!
  • 求在freebsd+Squid下实现pc上网的透明代理的实现方法!给出具体配置方法的高分谢!
  • 哪里有最新版本的JET下载,能给出URL么?高分送上
  • 我想用Java做个扫雷的游戏,各位给出出点子
  • 哪里可以看到Weblogic的在线文档?请给出具体连接,急急急
  • 高分寻找 用过IBM S390机的人吗?给出其信箱或QQ也行!
  • 急需OfficeXP的注册码和完美破解,请给出http的下载地址!
  • 给出学者推荐基本好的JAVA书籍
  • 诸位,谁能给出将文件上传到数据库和文件夹的优劣?
  • 我用CVS可以正常import、checkout,但是不能commit,给出错误是:(见正文)


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3