IPC_CREAT的用途是什么? C中的shmget()函数中的0666标志

时间:2016-11-02 12:46:19

标签: c shared-memory

shmget for IPC in linux

有人可以在上面的代码中解释一下IPC_CREAT | 0666在shmget()unix系统调用中真正做了什么,我知道0666在这里是八进制值,但改变它根本没有任何影响。

1 个答案:

答案 0 :(得分:3)

0666是linux中rwx octal格式的通常访问权限,并且具有序列(owner-group-user)。 IPC_CREAT的值为512(十进制),如sys / ipc.h头文件中所定义。

IPC_CREAT | 0666基本上按位执行或在两者中执行shmget中的标志,并且它们都只是执行它们的常用功能。 0666设置内存段的访问权限 IPC_CREAT告诉系统为共享内存创建一个新的内存段。

如果未使用此标记,则shmget()将找到与密钥关联的细分,并检查用户是否有权访问该细分。