linux下共享内存等文件的权限问题

1.root用户下使用shm_open创建共享内存时,用其他的用户登录后不能够连接到该共享内存,查看出错信息发现时因为权限不够。

后修改创建的时的权限就解决了。具体如下:

//系统错误号

errno = 0;  

int fd = shm_open(ShmName, O_RDWR | O_CREAT | O_EXCL, (S_IRWXO | S_IRWXG | S_IRWXU));  

if ( errno == EEXIST )   // exist  

creator = false;  

//fd = shm_open(ShmName, O_RDWR, 0);

fd = shm_open(ShmName, O_RDWR, (S_IRWXO | S_IRWXG | S_IRWXU));

}  

fchmod(fd, (S_IRWXO | S_IRWXG | S_IRWXU)); /* o/g/u */

你可能感兴趣的:(linux下共享内存等文件的权限问题)