肥兔子 (@user1567) 在 flock基础知识简介 中发帖
flock基础知识简介:
flock是Linux文件锁,用于多个进程同时操作同一个文件时,通过加锁机制保证数据的完整,flock使用场景之一,便是用于检测进程是否存在。flock属于建议性的锁,而非强制性锁,只是进程可以直接操作正被另一个进程用flock锁住的文件, 原因在于flock只检测文件是否加锁,内核并不会强制阻塞其他进程的读写操作,这便是建议性锁的内核策略。
方法原型: int flock(int fd, int operation)
第一个参数是文件描述符,第二参数指定锁的类型,有以下3个可选值:
LOCK_SH: 共享锁, 同一时间运行多个进程同时持有该共享锁
LOCK_EX: 排它锁,只允许一个进程持有该锁
LOCK_UN: 移除该进程的该文件所持有的锁