共享内存 - shmctl

优质
小牛编辑
128浏览
2023-12-01

共享内存的控制

函数原型

  1. #include <sys/ipc.h>
  2. #include <sys/shm.h>
  3. int shmctl(int shmid, int cmd, struct shmid_ds *buf);

参数

shmid

由shmget函数生成,不同的key值对应不同的id值。

cmd

操作字段,包括:

  • 公共的IPC选项(ipc.h中):
    • IPC_RMID //删除
    • IPC_SET //设置ipc_perm参数
    • IPC_STAT //获取ipc_perm参数
    • IPC_INFO //如ipcs
  • 共享内存自己的选项(shm.h中)【需要root权限】
    • SHM_LOCK //锁定共享内存段
    • SHM_UNLOCK //解锁共享内存段