chenshijun
2020-04-15 e485095690a71af1a9bc8e811eb4ea64a95508aa
shmwrap.go
@@ -149,6 +149,18 @@
    return data, id
}
// CheckShmExist check if shm is exist or not
// if exist, return id and true, else return 0 and false
func CheckShmExist(key int) (int, bool) {
    id, err := shm.Get(key, 0, 0)
    if err != nil || id == -1 { //no exist
        fmt.Printf("AttachBlock Get:%x, %v\n", key, err)
        return 0, false
    }
    return id, true
}
// DetachShm destroy
func DetachShm(data []byte) {
    ReleaseBlock(data)
@@ -211,4 +223,15 @@
    }
    return int(idDs.Nattch), nil
}
func GetKeyById(shmId int) (int,error) {
    var idDs shm.IdDs
    _, err := shm.Ctl(shmId, shm.IPC_STAT, &idDs)
    if err != nil {
        return 0, err
    }
    return int(idDs.Perm.Key), nil
}