【嵌入式】2013新的开始,谈谈给fcntl给文件加锁
0赞2013年注定是个多事的时间,人类躲过了2012,迎来了新的篇章。
今天上午研究了一下linux下给文件加锁,今天就写写这个问题。
当多个用户共同使用、操作一个文件的时候,linux通常采用的方法是给文件上锁,来避免共享资源产生竞争的状态。
文件锁包括建议锁和强制性锁。建议性锁要求上锁文件的进程都要检测是否有锁存在,并尊重已有的锁。强制性锁由内核和系统执行的锁。
Fcntl不仅可以实施建议性锁而且可以实施强制性锁。
#include <sys/types.h>
#include <unistd.h>
#include <fcnt1.h>
int fcnt1(int filedes, int cmd,... struct flock flockptr ) ;
struct flock 结构
区域的长度,由l_len表示。
关于加锁和解锁区域的说明还要注意下列各点:
ioctl 函数是I / O操作的杂物箱。不能用本章中其他函数表示的I / O操作通常都能用i o c t l表示。终端I / O是ioctl 的最大使用方面,主要用于设备的I / O控制。
#include <unistd.h> /* SVR4 */
#include <sys/ioctl.h> /* 4.3+BSD * /
int ioctl(int filedes, int request, . . . ) ;
返回:若出错则为- 1,若成功则为其他值。
外面还有余震,就写这么多吧,谢谢大家。