|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
Linux C 文件锁 ' A9 o% _$ G5 q& L2 Z* _2 V8 ], K) ^
) Z. [' h/ P6 R
Linux系统中,文件上锁的函数有两个flock和fcntl ,前者主要是加建议性锁,后者既可以加建议性锁(默认)也可以加强制性锁,而且它还可以给某一记录进行上锁,即所谓的记录锁。& D, s: l8 l2 |1 |' \+ G7 ]
6 f8 A ]6 T3 y! d6 l+ C* _1 r. J2 i: v" P, k
fcntl文件锁有两种类型:建议性锁 和强制性锁
' E- V0 s, v3 Y4 V" B/ } 建议性锁是这样规定的:每个使用上锁文件的进程都要检查是否有锁存在,当然还得尊重已有的锁。内核和系统总体上都坚持不使用建议性锁,它们依靠程序员遵守这个规定。
' x4 q7 O: y7 i& ~ 强制性锁是由内核执行的。当文件被上锁来进行写入操作时,在锁定该文件的进程释放该锁之前,内核会阻止任何对该文件的读或写访问,每次读或写访问都得检查锁是否存在。
( C5 k& B' @. o
- F3 a `2 n, b. W- n4 s# \3 R% q3 ]. y, {: E3 B+ r; j
# V9 A" O7 |" g6 l _2 B" |) K1 y* n. _
. R7 z8 E' j0 W8 `; v
1 C0 x9 E: A) [- `; i) q- @/ H' V( r' @/ T! e5 d V
|
|