我正在用C++编写一个模块,它将在一组机器上运行,所有这些机器都有一个nfs挂载文件存储。避免在NFS共享文本文件上同时写入
我有一个配置文件与所有的机器通过NFS共享;并且所有人都可以读取/写入该文件。如何确保不会因同时访问而导致数据损坏?
我知道NFS有自己的锁定协议,但我看到它不可靠 - concurrent nfs access。我也看到iNotify在nfs安装的驱动器上不太好 - inotifiy example。我不确定stat将有助于检查在写入/读取之前是否正在访问文件。
如何在C++中实现一个简单的锁定机制以避免同时访问?
...通过不尝试同时写入同一文件。写入文件的唯一副本,并使用重命名重新转向旧文件。 – Petesh 2012-07-06 20:09:50
......换句话说,如果文件是本地文件,则完全可能与您应该做的事情完全相同。 – Celada 2012-07-06 20:16:49
这对我来说不是一个选项,因为文件(使用它的fd)正在被IPC(unix域套接字)跟踪以进行更改。所做的更改将传回模块以供进一步处理。 – sillysheep 2012-07-06 20:18:51