我有 10 个进程在运行,每个进程都写入同一个文件。我不想要多个编写器,所以基本上我正在寻找一个互斥/二进制信号量来保护文件写入。问题是我不能在 10 个进程之间共享信号量,所以我正在考虑在 10 个进程之间使用共享内存,并将信号量放在共享内存中,以便每个进程都可以访问它。
任何人都可以指点我在 C/C++ for Unix 中的相关文档吗?使用此结构的示例代码会很棒。
谢谢
最佳答案
将信号量放在共享内存中并不是解决这个问题的最佳方法(如果它能起作用的话)。您应该研究文件锁定,这是一种 UNIX 功能,专门设计用于在文件编写者之间提供排他性。
具体来说,查看:
有关更多说明 Material ,请参阅 Advanced Programming in the UNIX Environment, section 14.3
关于c++ - 共享内存信号量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1409597/