shmget for IPC in linux
有人可以解释一下上面代码中的 shmget() unix 系统调用中的 IPC_CREAT |0666 到底做了什么,我知道 0666 在这里是八进制值,但更改它根本没有任何影响。
最佳答案
0666 是 linux 中通常的访问权限,采用 rwx 八进制格式并具有序列(所有者-组-用户)。 IPC_CREAT 在 sys/ipc.h 头文件中定义的十进制值为 512。
IPC_CREAT|0666 基本上执行按位或两者的操作来设置 shmget
中的标志,并且它们都只是执行其通常的功能。
0666 设置内存段的访问权限,而
IPC_CREAT 告诉系统为共享内存创建一个新的内存段。
如果未使用此标志,则 shmget()
将找到与 key 关联的段并检查用户是否有权访问该段。
关于c - IPC_CREAT 有什么用? 0666 C 中 shmget() 函数中的标志,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40380327/