• Linux 进程间共享内存 SYSTEMV


    • #include <sys/ipc.h>
    • #include <sys/shm.h>
    • int shmget(key_t key, int size, int shmflag)

    key取值为IPC_PRIVATE时,shmflag应为IPC_CREAT,则新建共享内存
    key取值不为IPC_PRIVATE则应为已创建的key值,shmflag不应包含IPC_CREAT和IPC_EXCL,且大小小于等于原共享内存大小
    成功则返回共享内存id,失败返回-1

    • void *shmat(int shmid, const void *shmaddr, int shmflag)

    shmid为共享内存id
    shmaddr为空则系统自动分配内存
    shmflag可以设为SHM_RDONLY则为只读
    成功则返回映射地址,失败返回-1

    • int shmdt(const void *shmaddr)

    解除shmaddr与共享内存间的关系
    成功则返回0,失败则返回-1

    • int shmctl(int shmid, int cmd, struct shmid_ds *buf)

    shmid为共享内存id
    cmd为命令,为IPC_STAT则是获取共享内存配置,为IPC_RMID则是删除共享内存和相关内容
    成功则返回0,失败则返回-1

    示例代码:https://github.com/jhc888007/test/blob/master/shm_systemv.cpp

    参考文献:blog.csdn.net/lfw19891101/article/details/5994927

  • 相关阅读:
    c# 抽象类(abstract)
    c# 虚方法(virtual)与 多态(Polymorphism)
    02.JavaScript基础上
    第 12 章 Ajax
    第 11 章 动画效果
    第 10 章 高级事件
    第 9 章 事件对象
    第 8 章 基础事件
    第 7 章 表单选择器
    第6章 DOM节点操作
  • 原文地址:https://www.cnblogs.com/jhc888007/p/7041710.html
Copyright © 2020-2023  润新知