文件锁
优点
- 在所有的IPC通信中效率最高
缺点
- 所有共享内存带来的问题:同步
- 解决方法
- System V信号量
- POSIX信号量
- 文件锁
- 专门为文件设计的同步技术
- 适用于操作共享文件映射
文件锁
什么是文件锁
- 英文名:file lock,在同一时刻只允许一个进程对文件进行访问
- 建议性锁:advisory locking,又称协调锁
- 内核只提供加减锁以及检测是否加锁,不提供锁的控制与协调工作
- 需要多进程相互检测确认的加锁机制
- A进程对一个操作的文件加了锁
- B进程同样对该文件进行读写操作
- 只有当B进程也对该文件加锁,文件锁才能起到同步作用
- Linux一般使用建议锁
- 强制性锁:mandatory locking
- 进程对文件进行I/O操作是,内核内部会检测该文件是否被加锁
- A进程对一个操作的文件加了锁
- 当B进程对该文件进行I/O操作时,内核若检测该文件加了强制锁,B进程的操作则会失败
文件锁使用接口
系统调用:flock
- 函数原型:int flock(