热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Linuxc共享内存

#include#include#include#include#include
#include
#include
#include
#include
#include

typedef struct {
    int islock;
} VMMSHM;
int deleteShareMem() {
    int shm_id;
    key_t key;
    key = ftok("vmmshm", 1); // 计算标识符
    shm_id = shmget(key, 4096, IPC_CREAT);
    if (shmctl(shm_id, IPC_RMID, NULL) == -1)
        return -1;
    return 1;
}
int isLocked() {
    int shm_id;
    key_t key;
    VMMSHM *p_map;
    int islock;
    key = ftok("vmmshm", 1); // 计算标识符
    shm_id = shmget(key, 4096, IPC_CREAT);
    printf("shmid:%d\n", shm_id);
    if (shm_id == -1) {
        perror("shmget error");
        return -1;
    }
    p_map = (VMMSHM*) shmat(shm_id, NULL, 0);
    islock = p_map->islock;
    if (shmdt(p_map) == -1) {
        perror("shmdt error\n");
        return -1;
    }
    return islock;

}

int setLocked()
{
        int shm_id;
        key_t key;

        VMMSHM *p_map;
        key = ftok("vmmshm", 1);
        shm_id = shmget(key, 4096, IPC_CREAT);
        printf("shmid:%d\n",shm_id);
        if (shm_id == -1)

        {
            perror("shmget error \n");
            return -1;
        }
        p_map = (VMMSHM*) shmat(shm_id, NULL, 0);

        p_map->islock = 1;
        if (shmdt(p_map) == -1) {
            perror("detach error");
            return -1;
        }
        return 1;

//用ipcs -m命令查看系统的所有共享内存

转:https://www.cnblogs.com/yangyh/archive/2010/06/30/1768584.html



推荐阅读
author-avatar
VW旻shi只吃货8453
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有