免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 4072 | 回复: 5
打印 上一主题 下一主题

请问fcntl函数或者其他锁函数可以锁共享内存吗 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2005-10-25 15:57 |只看该作者 |倒序浏览
如题

论坛徽章:
0
2 [报告]
发表于 2005-10-25 17:53 |只看该作者

请问fcntl函数或者其他锁函数可以锁共享内存吗

首先没有锁共享内存的讲法。\r\n当然,可以设置其权限等。\r\nfcntl操作的是文件描述符,\r\n虽然共享内存也是通过 id 号标识,但是他和文件描述符不同,\r\n他不能通过标准的 Open , write等接口操作。\r\n另外,文件描述符只有在进程内区分,进程之间的不打嘎;\r\n而共享内存的标识是整个系统都有效的。

论坛徽章:
0
3 [报告]
发表于 2005-10-25 18:05 |只看该作者

请问fcntl函数或者其他锁函数可以锁共享内存吗

大侠,怎么才能防止对共享内存访问的冲突呢?\r\n你指的“设置其权限”能不能讲一下?\r\n
原帖由 \"marlalee\" 发表:\n首先没有锁共享内存的讲法。\r\n当然,可以设置其权限等。\r\nfcntl操作的是文件描述符,\r\n虽然共享内存也是通过 id 号标识,但是他和文件描述符不同,\r\n他不能通过标准的 Open , write等接口操作。\r\n另外,文件描述符只..........

论坛徽章:
0
4 [报告]
发表于 2005-10-25 22:35 |只看该作者

请问fcntl函数或者其他锁函数可以锁共享内存吗

常用的同步手段就是信号量,semaphore。\r\n一般来说,进程之间都是通过 shared memory 来传输\r\n规模较大的数据,同时通过semaphore 来同步。\r\n个人认为 Posix的semaphore接口比较简洁,\r\n用来同步shared memory正合适。\r\n\r\nsem_open();\r\nsem_wait();\r\n// code to read or write shared memory \r\nsem_post();\r\n\r\n而SVR4就复杂一些了。可以找相关的材料,\r\n比如<<Unix networks programming - vol2 IPC>;>; \r\n-- written by Richard Stevens\r\n\r\n这里要注意的是,semaphore 和 shared memory 是随内核的 IPC资源,就是说在进程中把他们被建立后,进程退出,它们还依然存在,并且\r\n能够继续使用(如果允许的化),理由是创建它(们)的进程不知道其它进程是不是好要使用它们。如果想删除它们必须现实地调用删除的代码。这与PIPE, FIFO不同(它们是随进程的)。\r\n在shell中可以用命令  ipcs 看到它们,用ipcrm 删除它们。

论坛徽章:
0
5 [报告]
发表于 2005-10-26 10:48 |只看该作者

请问fcntl函数或者其他锁函数可以锁共享内存吗

多谢大侠\r\n
原帖由 \"marlalee\" 发表:\n常用的同步手段就是信号量,semaphore。\r\n一般来说,进程之间都是通过 shared memory 来传输\r\n规模较大的数据,同时通过semaphore 来同步。\r\n个人认为 Posix的semaphore接口比较简洁,\r\n用来同步shared memory正合适..........

论坛徽章:
0
6 [报告]
发表于 2006-04-11 09:12 |只看该作者
我也遇到同样的问题!\r\n需要一个进程对共享内存定期更新\r\n另外有多个进程对共享内存进行读操作\r\n应该怎么办啊??
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP