文件锁的概述
文件锁也被称为记录锁,文件锁如果深耕的话,意义不大(比如文件锁起码分为了建议锁和强制性锁)。
但是深入没有意义的,因为实际开发很少用上,文件锁用到的机会不多,那为什么要学?
- 主要是为了对比学习各种的加锁机制,比如进程有进程信号量加锁机制,线程有线程互斥锁,线程信号量等加锁机制,学习文件锁有助于我们对比理解,对于我们后续理解驱动课程的内核锁,c++,java等库所提供的资源保护的锁机制,都是很有意义的。
- 另外还有一个目的,那就是练习fcntl函数的使用,因为文件锁也需要用到fcntl函数。
文件锁的作用
顾名思义,就是用来保护文件数据的。
当多个进程共享读写同一个文件时,为了不让进程们各自读写数据时相互干扰
- 我们可以使用进程信号量来互斥实现,除了可以使用进程信号量以外
- 还可以使用文件锁实战,而且功能更加丰富,使用起来相对更容易一些。
进程间读写问题
多进程共享读写同一个文件时,如果数据很重要的话,为了防止数据相互修改,应该满足如下读写操作:
- 写与写应该互斥:
- 当某个进程正在写文件,而且在数据没有写完时,其他