note
文件锁在需要协同多个进程同时访问一个文件并且要保证文件的完整性以及数据能丢失的时候很有用
问题: 想锁住文件来防止多个进程篡改该文件
解决方案: 通过Node的内置模块创建一个文件锁机制
我们来看几个方法:
- 使用独占标记创建锁文件
- 使用mkdir创建锁文件
使用独占标记创建锁文件
fs模块为所有需要打开文件的方法,(比如writeFile、fs.createWriteStream以及fs.open) 提供了一个x标记。这告诉操作系统这个文件应该以独占模式打开(0_EXCL),当使用这个方法时, 若这个文件存在,文件不能被打开:
fs.open('config.lock', 'wx', err => { if (err) return console.error(err);
})
1以可执行、可写入的模式打开 2任何失败,包括文件已存在 3安全地修改config.json
