有人可以在上面的代码中解释一下IPC_CREAT | 0666在shmget()unix系统调用中真正做了什么,我知道0666在这里是八进制值,但改变它根本没有任何影响。
答案 0 :(得分:3)
0666是linux中rwx octal格式的通常访问权限,并且具有序列(owner-group-user)。 IPC_CREAT的值为512(十进制),如sys / ipc.h头文件中所定义。
IPC_CREAT | 0666基本上按位执行或在两者中执行shmget
中的标志,并且它们都只是执行它们的常用功能。
0666设置内存段的访问权限
IPC_CREAT告诉系统为共享内存创建一个新的内存段。
如果未使用此标记,则shmget()
将找到与密钥关联的细分,并检查用户是否有权访问该细分。