我正在尝试使用shm_open()创建一个新的共享内存文件,但是我得到了errno 2(没有这样的文件或目录)。
shm_open ("/DIAG_public", O_CREAT | O_RDWR, S_IWUSR | S_IRUSR | S_IWGRP | S_IRGRP | S_IROTH);
我曾尝试创建自己的独立应用程序,以相同的名称和选项运行shm_open,这是成功的...
因此,我检查了/dev/shm的权限为drwxrwxrwt,并且运行实际代码的进程具有-rwxrwxrwx权限。
此外,mount | grep shm返回:
tmpfs on /dev/shm type tmpfs (rw)
我想不出来了...有什么建议可以解决问题吗?
谢谢。
rwxrwxrwx
权限 - 进程没有权限。顺便说一下,0777是一个非常不好的权限设置,不适合程序使用。 - paxdiablostrace
下运行您的程序,以查看哪个系统调用失败以及使用了哪些参数。 - o11c