文件锁
来源:互联网 发布:mac pro 需要关机吗 编辑:程序博客网 时间:2024/05/16 07:54
unix文件锁主要是靠fcntl函数实现的
fcntl 原型
#include<fcntl.h>int fcntl(int field,int cmd,... /* struct flock * flockptr */);
返回值 若成功依赖于cmd 若出错 返回-1
第三个参数是指向一个flock 结构的指针
{
short l_type;
off_t start;
short l_whence;
off_t l_len;
pid l_pid;
}
希望的锁类型l_type:F_RDLCK,F_WRLCK,F_UNLCK
cmd 的3种类型:
F_GETLK F_SETLK F_SETLKW
F_GETLK 判读flockptr所描述的锁是否会被另一把锁所排斥(阻塞)。如果存在一把锁,它阻止创建由flockptr所描述的锁,则把该现存锁的信息写到flockptr指向的结构中。
如果不存在这种情况,则除了将l_type设为F_UNLCK外其他不变
F_SETLCK 设置由flockptr所描述的锁。如果试图建立一把读锁或一把写锁,而按上述规则不允许,则fcntl立即出错返回, 此时errno设置为EACESS或EAGAIN 。
此命令也清除由flockptr说明的锁(l_type设为F_UNLCK)
F_SETLKW F_SELCK的阻塞版本 不立即出错返回 而是使调用者休眠 如果请求创建的锁可用,或者休眠由信号中断,则该进程被唤醒。
0 0
- 文件操作-文件锁
- Linux文件---文件锁
- 文件锁
- 文件锁
- 文件锁
- 文件锁
- 文件锁
- 文件锁
- 文件锁
- 文件锁
- 文件锁
- 文件锁
- 文件锁
- 文件锁
- 文件锁
- 文件锁
- 文件锁
- 文件锁
- 在面试时怎么回答java垃圾回收机制
- 仅一行代码,打造一个在线编辑器
- Tornado 学习
- 端正坐姿有益健康
- 在windows phone应用程序中使用友盟统计应用信息
- 文件锁
- MyEclipse6.5 SVN插件的安装
- GCD下载图片
- Android系统源代码下载
- 负载均衡----定义详细
- QListWidget、QTreeWidget 和 QTableWidget
- ECshop 对比页新窗口打开 ecshop二次开发问题处理
- UVa10115 - Automatic Editing- 字符串(子串替换)-难度2
- Android的Canvas学习笔记