1.名称与功能
文件锁,或称为“建议文件锁”(advisory file locking)。
进程在执行可能会与其他操作冲突的操作之前,先要对文件锁进行查询,或者上锁。
这个操作并不是由OS强制执行。
2.实现
使用文件结构 file_lock 表来记录所有的锁。
21803 EXTERN struct file_lock { 21804 short lock_type; /* F_RDLOCK or F_WRLOCK; 0 means unused slot */ 21805 pid_t lock_pid; /* pid of the process holding the lock */ 21806 struct inode *lock_inode; /* pointer to the inode locked */ 21807 off_t lock_first; /* offset of first byte locked */ 21808 off_t lock_last; /* offset of last byte locked */ 21809 } file_lock[NR_LOCKS];
lock_type:锁类型,读锁还是写锁;0表示不使用这个单元;
lock_pid:标示上锁进程;
lock_inode: 指向文件inode的指针;
lock_first,lock_last:从哪个字节开始,锁到哪个字节为止。