关于共享内存控制及相关结构体

来源:互联网 发布:长房云时代 网络开盘 编辑:程序博客网 时间:2024/04/27 14:11
 

shmctl

shmctl 删除共享内存:
  int shmctl( int shmid , int cmd , struct shmid_ds *buf );
  int shmid:是共享内存的ID。
  int cmd: 是控制命令,可取值如下:
  IPC_STAT 得到共享内存的状态,
  IPC_SET 改变共享内存的状态
  IPC_RMID 删除共享内存
  struct shmid_ds *buf是一个结构体指针。IPC_STAT的时候,取得的状态放在这个结构体中。如果要改变共享内存的状态,用这个结构体指定。
  返回值: 成功:0失败:-1
  使用例子:

  shmctl(shmid,IPC_RMID,NULL);

 

共享内存状态结构体

include/linux/shm.h

  struct shmid_ds

  {

  struct ipc_perm shm_perm; /* operation perms */

  int shm_segsz; /* size of segment (bytes) */

  __kernel_time_t shm_atime; /* last attach time */

  __kernel_time_t shm_dtime; /* last detach time */

  __kernel_time_t shm_ctime; /* last change time */

  __kernel_ipc_pid_t shm_cpid; /* pid of creator */

  __kernel_ipc_pid_t shm_lpid; /* pid of last operator */

  unsigned short shm_nattch; /* no. of current attaches */

  unsigned short shm_unused; /* compatibility */

  void *shm_unused2; /* ditto - used by DIPC */

  void *shm_unused3; /* unused */

  };

 

原创粉丝点击