文件锁分为建议性锁和强制性锁两种:
一、建议性锁
- 建议性锁,第一,它只是一种建议性质的锁,只有对参与规则的协作进程才有效,其他进程则可以随意更改文件。第二,它只能对整个文件进行锁定。
- flock函数就是进行建议性锁的(在NFS等文件系统不能协作),也可使用fcntl函数。
二、强制性锁
可以对文件的一个记录进行锁定,分共享锁,互斥锁,一般用fcntl函数(它有个简易的封装函数lockf函数)。
- 共享锁
也称读锁,可以多个进程进行共享锁,只能对文件进行读操作。 - 互斥锁
也称为写锁,一次只有一个进程能进行互斥锁,可以对文件进行读和写操作。
- 共享锁