相关疑难解决方法(0)

如何使用共享内存在进程之间共享信号量

我必须将N个客户端进程与一个服务器同步.这些进程由一个main函数分叉,我在其中声明了3个信号量.我决定使用POSIX信号量,但我不知道如何在这些进程之间共享它们.我认为共享内存应该正常工作,但我有一些问题:

  • 如何在我的片段中分配正确的内存空间?
  • 我可以sizeof(sem_t)size_t字段中shmget使用以便准确分配我需要的空间吗?
  • 有没有人有类似这种情况的例子?

c synchronization shared semaphore client-server

25
推荐指数
2
解决办法
6万
查看次数

分叉子进程使用相同的信号量吗?

假设我创建了一个信号量.如果我分叉一堆子进程,它们还会使用相同的信号量吗?

另外,假设我创建了一个内部和分叉信号量的结构.所有子进程是否仍然使用相同的信号量?如果没有,将结构+信号量存储在共享内存中是否允许子进程使用相同的信号量?

我真的很困惑我的分叉子进程如何使用相同的信号量.

c linux fork semaphore shared-memory

7
推荐指数
2
解决办法
1万
查看次数