linxu c语言 fcntl函数和flock函数区别 【转】
2013-12-10 16:24
218 查看
flock和fcntl都有锁的功能,但他们还有一点小小的区别:
1.flock只能加全局锁,fcntl可以加全局锁也可以加局部锁。
2.当一个进程用flock给一个文件加锁时,用另一个进程再给这个文件加锁,它会阻塞或者也可以返回加锁失败(可以自己设置)。
3.当一个进程用fcntl给一个文件加锁时,用另一个进程去读或写文件时必须先获取加锁的信息,然后在给这个文件加锁。
3.当给一个文件加fcntl的独占锁后,再给这个文件加flock的独占锁,其会进入阻塞状态。
4.当给一个文件加flock的独占锁后,用fcntl去获取这个锁信息获取不到,再用fcntl仍然可以给文件加锁。
1.flock只能加全局锁,fcntl可以加全局锁也可以加局部锁。
2.当一个进程用flock给一个文件加锁时,用另一个进程再给这个文件加锁,它会阻塞或者也可以返回加锁失败(可以自己设置)。
3.当一个进程用fcntl给一个文件加锁时,用另一个进程去读或写文件时必须先获取加锁的信息,然后在给这个文件加锁。
3.当给一个文件加fcntl的独占锁后,再给这个文件加flock的独占锁,其会进入阻塞状态。
4.当给一个文件加flock的独占锁后,用fcntl去获取这个锁信息获取不到,再用fcntl仍然可以给文件加锁。
相关文章推荐
- linxu c语言 fcntl函数和flock函数区别说明
- 【C语言】宏和函数的区别
- c语言中static 函数和普通函数的区别?
- C语言教学--函数之间传值和传址的区别
- c语言:sizeof的使用,其不是函数,是一个操作符关键字,定义一个数组arr,输出arr和&arr的区别
- C语言 scanf()和gets()函数的区别
- 在c语言中宏和函数的区别
- c语言中static 函数和普通函数的区别?
- C语言-- gets()和scanf()函数的区别
- C语言 gets()和scanf()函数的区别
- C语言 gets()和scanf()函数的区别
- C语言sizeof()和strlen()函数的区别
- c语言中,宏和函数的区别
- linux下C语言中的flock函数用法
- C语言中函数返回数组;数组与指针的区别
- C语言 函数返回数组和指针区别
- C语言 gets()和scanf()函数的区别
- C语言 gets()和scanf()函数的区别
- C语言 gets()和scanf()函数的区别
- C语言 sleep wait 函数 区别