首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >按名称列出Solaris上的共享内存对象

按名称列出Solaris上的共享内存对象
EN

Stack Overflow用户
提问于 2009-10-29 01:26:31
回答 2查看 1.7K关注 0票数 2

我可以使用ipc(1)列出Solaris 10机器上的活动共享内存对象,但它是按键列出它们的。不过,我是通过shm_open(3)打开对象的,它以字符串作为名称来标识对象。有没有办法按名称列出共享内存对象,或者只获取键<->名称映射?我最感兴趣的是可以从命令行运行的东西,尽管这样做的API也是可以的。谢谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2009-10-29 02:36:09

就我记忆所及,Solaris下的POSIX共享内存出现在文件系统上,或者直接以.SHMDxxx文件的形式出现在/tmp/下,或者在/var/tmp/.SHMD/下。这可能对您有帮助,也可能没有帮助,而且我手头没有Solaris工具箱可供验证。

票数 2
EN

Stack Overflow用户

发布于 2009-10-29 01:48:27

我不知道有什么方法可以列出名称或获取键/名称映射。但我想我知道一个API可以解决你的问题。

我认为您可以通过使用System V接口(也是一个Posix API )来附加来自密钥的段。我相信它的工作方式是这样的:

代码语言:javascript
复制
int attach_shmem(key_t key, void** pp){
    void* p;
    int id;

    id = shmget(key, 0, 0);
    if (id < 0) {
        perror("shmget");
        return ERR_SHMGET;
    }
    p = shmat(id, 0, 0);
    if ((long)p == -1) {
        perror("shmat");
        return ERR_SHMAT;
    }
    *pp = p;
    return 0;
}
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1638799

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档