• 当多个用户使用、操作一个文件的时候,Linux通常采用的方法是给文件上锁,来避免共享资源产生的竞争的状态。
  • 文件锁按功能分为:
  1. 共享读锁:文件描述符必须读打开      一个进程上了读锁,其他进程也可以上读锁进行读取。 
  2. 独占写锁:文件描述符必须写打开       一个进程上了写锁,其他进程不能上写锁和读锁进行读写操作
  • 文件锁按类型分为建议锁和强制性锁。建议性锁要求上锁文件的进程都要检测是否有锁存在,并尊重已有的锁。强制性锁由内核和系统执行的锁。
  • fcntl不仅可以实施建议性锁而且可以实施强制性锁。

高级文件操作--文件锁

F_SETLK:设置文件锁            F_GETLK:获得文件锁信息            F_SETLKW:  F_SETLK的阻塞版本

 

flock结构体

  • I_type

 锁类型,F_RDLCK(共享读锁)、F_WRLCK(独占性写锁)或F_UNLCK(解锁一个区域)

  • I_start、I_whence

 要加锁或解锁的区域的起始地址,由I_start和I_whence两者决定。

 I_start是相对位移量,I_whence则决定相对位移量的起点。

  • I_len

 表示区域的长度

 

高级文件操作--文件锁

 

相关文章:

  • 2021-05-21
  • 2021-05-29
  • 2022-02-14
  • 2021-11-09
  • 2022-02-26
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2022-01-12
  • 2019-09-10
  • 2021-12-25
  • 2022-02-24
  • 2022-12-23
  • 2021-11-02
  • 2021-09-21
相关资源
相似解决方案