如何使用共享内存的信号量

时间:2014-07-22 16:10:47

标签: c++ linux shared-memory semaphore

我编写了两个简单的进程 - 客户端和服务器(在c ++中 - LINUX)共享相同的内存,一个写入它,另一个只读取它。 (从这个网站上获取代码:

  

http://www.cs.cf.ac.uk/Dave/C/node27.html#SECTION002730000000000000000

问题: 我需要确保第二个进程在从另一个进程写入时不从某个行/地址读取(但它可以从其他行/地址读取)。

例如,如果"服务器"正在写第10-15行,"客户"无法访问这些行,但它可以从其余行读取。

我知道我需要使用 信号量 ,但我不知道如何将其与共享内存结合使用。 关于如何使用信号量的任何示例代码/帮助?

注意:我使用的是SystemV IPC而不是POSIX。

提前致谢

1 个答案:

答案 0 :(得分:0)

这个16页的文档应该可以帮助您理解和实现信号量:http://see.stanford.edu/materials/icsppcs107/23-Concurrency-Examples.pdf