【发布时间】:2012-06-21 14:07:43
【问题描述】:
我目前正在ubunto上开发一个应用程序并调用shm_open,目前默认路径在/var/run/shm内。但是我需要将其更改为 /tmp。简单地尝试以下方法是行不通的:
fd = shm_open("/tmp/test", O_RDWR | O_CREAT, 0777);
谁能给点建议?
【问题讨论】:
-
查询
errno返回的错误码是什么? -
如果你的意思是 fd - 它返回 3
-
好的,这是一个有效的文件描述符……你为什么说它不起作用?
-
对不起我的错误,当我摆脱 /tmp 时它返回 3。但是执行上述 -1 时返回
-
这不是共享内存对象的工作方式......在 Linux 上,它们默认创建在
/dev/shm内部,如果你想要它们在其他地方,你必须挂载一个tmpfs文件-所需目录中的系统。
标签: c++ linux boost shared-memory