【问题标题】:NetBSD - Can we force semget() to return same semid?NetBSD - 我们可以强制 semget() 返回相同的 semid 吗?
【发布时间】:2014-07-31 22:48:54
【问题描述】:

我正在开发一个 NetBSD 系统。

当我从 Richard Stevens 的一本关于 UNIX 编程的书中回忆时,我承认 semget() 调用会为不同的调用返回不同的值,即使对于同一个线程也是如此。

我最近碰巧看到一组进程,其中对此 semget() 的不同调用为各自的 IPC 键返回相同的一组值。我看到不同框中的相同过程映像也为 semid 产生相同的值。

所以,我的问题是 - 我们是否可以强制 semget() 表现出这种行为?

【问题讨论】:

    标签: unix semaphore netbsd


    【解决方案1】:

    semget 总是返回与指定键关联的信号量。如果您指定相同的键,您将获得相同的信号量。我相信即使使用 netbsd 也是如此。

    int semget(key_t key, int nsems, int semflg);
    

    【讨论】:

    • 我认为我的问题不够清楚 - 我的意思是对于相同的 IPC 密钥,对 semget 的不同调用返回不同的 semid(由于插槽排序)。即使对于同一线程也是如此。现在我的问题是 - 是否也可以保留相同的半成品?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-09-04
    • 2021-10-11
    • 1970-01-01
    • 1970-01-01
    • 2012-03-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多