免费注册 查看新帖 |

Chinaunix

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

POSIX标准下的基于内存的信号灯在进程间共享,今天使用发现一个问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-03-30 16:32 |只看该作者 |倒序浏览
我在shm_open的时候,open的文件名称为:/tmp/.posix_shm

但是返回的fd为-1,失败,后来文件名称改为posix_shm,也微是说不再是带路径了,就没问题了

系统是RedHat AS4, gcc 3.23


原来本意是想在/tmp目录下创建这个文件的,因为Richard Stevens的UNIX网络编程第二卷里也有这样的例子,然后还可以观察这个文件的各种信息。

但是实际情况是这么做无法成功,我把文件名称改为不带路径后就ok了,当然,在unix网络编程第二卷中的第二章专门说明了关于这个“文件名”的各种情况,不同系统实现也不同罢了

我的情况是,当我仅仅用文件名称(不带路径)后,该文件被创建在/dev/shm目录下,还是与原来理解的有点出入。

一直以为是打开的文件名称带路径,则在该路径下将创建此文件。

大家有什么想法和观点,请指点一下了

论坛徽章:
0
2 [报告]
发表于 2006-03-30 23:48 |只看该作者
和我遇到的问题是一样的,你应该除了把第一个“/”以外的“/”符号都改成“.”的,不信看看帮助

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
3 [报告]
发表于 2006-03-31 00:05 |只看该作者
The POSIX shared memory object implementation on Linux 2.4 makes use of a dedicated file system, which is normally mounted under /dev/shm.

遇到对系统调用和以前理解不一致的地方,
第一个反应应该是man!

论坛徽章:
0
4 [报告]
发表于 2006-03-31 10:59 |只看该作者
恩,没错,

man中的说明的确是处理第一个位置可以出现“/”之外,其他地方不允许在出现了

Red Hat AS3  gcc 3.2.3

论坛徽章:
0
5 [报告]
发表于 2006-03-31 12:24 |只看该作者
nod!

论坛徽章:
0
6 [报告]
发表于 2006-03-31 12:33 |只看该作者
Richard Stevens书是有点老了,那个UNIX 环境高级编程 出新版了,不过有点贵

论坛徽章:
0
7 [报告]
发表于 2006-04-01 20:11 |只看该作者
是吗?都有新的了?

可惜,大师英年早逝啊,不然我们还能看到很多好的书!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP