![Linux 下的文件系统是否强制执行序列化(这意味着在任何给定时间实际上仅对文件系统发生一次更改)?](https://linux22.com/image/140792/Linux%20%E4%B8%8B%E7%9A%84%E6%96%87%E4%BB%B6%E7%B3%BB%E7%BB%9F%E6%98%AF%E5%90%A6%E5%BC%BA%E5%88%B6%E6%89%A7%E8%A1%8C%E5%BA%8F%E5%88%97%E5%8C%96%EF%BC%88%E8%BF%99%E6%84%8F%E5%91%B3%E7%9D%80%E5%9C%A8%E4%BB%BB%E4%BD%95%E7%BB%99%E5%AE%9A%E6%97%B6%E9%97%B4%E5%AE%9E%E9%99%85%E4%B8%8A%E4%BB%85%E5%AF%B9%E6%96%87%E4%BB%B6%E7%B3%BB%E7%BB%9F%E5%8F%91%E7%94%9F%E4%B8%80%E6%AC%A1%E6%9B%B4%E6%94%B9%EF%BC%89%EF%BC%9F.png)
https://unix.stackexchange.com/a/12818/674 说
程序使用锁定文件来确保可能在一个系统上同时运行的程序的两个(行为良好的)单独实例不会同时访问其他内容。这个想法是在程序访问其资源之前,它会检查锁定文件是否存在,如果锁定文件存在,则错误输出或等待它消失。当它不存在时,想要“获取”资源的程序会创建该文件,然后稍后可能遇到的其他实例将等待该过程完成。当然,这假设“获取”锁的程序实际上释放了锁并且没有忘记删除锁文件。
这有效是因为所有类 UNIX 操作系统下的文件系统都强制序列化,这意味着在任何给定时间实际上只发生对文件系统的一次更改。有点像数据库的锁等等。
最后一段是什么意思?
在Linux中,一个文件可以由两个进程同时写入,并且操作系统不提供隐式同步,而是需要程序员显式同步,这是否正确?
锁定文件是否是同步多个进程对同一文件的访问的显式方法?
谢谢。