我们经常碰到多个进程打开同一个文件读写。最经典的处理方式是映射到同一个文件系统缓冲区让这两个进程随意读写。如果没有协调好,可能数据内容就乱了。
不然 posix 也提供了 flock(), win32api 提供了 LockFileEx() 让应用程序自行加锁。这需要应用程序额外的编程。因为这些系统调用都在同一台机器上面,所以很容易实现。但甚少有软件使用这套 API,大多数软件都假定自己是文件唯一的使用者。
然而,这种控制方式对于网络文件系统却难以实现。不知道 smb/nfs 是怎么处理的。以及有没有好的办法真正地解决这个问题?
--
FROM 59.60.25.*