文件锁(一)——文件锁的概述

文件锁的概述

文件锁也被称为记录锁,文件锁如果深耕的话,意义不大(比如文件锁起码分为了建议锁和强制性锁)。

但是深入没有意义的,因为实际开发很少用上,文件锁用到的机会不多,那为什么要学?

  • 主要是为了对比学习各种的加锁机制,比如进程有进程信号量加锁机制,线程有线程互斥锁,线程信号量等加锁机制,学习文件锁有助于我们对比理解,对于我们后续理解驱动课程的内核锁,c++,java等库所提供的资源保护的锁机制,都是很有意义的。
  • 另外还有一个目的,那就是练习fcntl函数的使用,因为文件锁也需要用到fcntl函数。

文件锁的作用

顾名思义,就是用来保护文件数据的。

当多个进程共享读写同一个文件时,为了不让进程们各自读写数据时相互干扰

  • 我们可以使用进程信号量来互斥实现,除了可以使用进程信号量以外
  • 还可以使用文件锁实战,而且功能更加丰富,使用起来相对更容易一些

进程间读写问题

多进程共享读写同一个文件时,如果数据很重要的话,为了防止数据相互修改,应该满足如下读写操作:

  1. 写与写应该互斥
    • 当某个进程正在写文件,而且在数据没有写完时,其他
  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
Linux VFS(Virtual File System)文件是用于在多进程或多线程环境下对文件进行并发访问控制的机制。它可以确保同一时间只有一个进程或线程能够对文件进行写操作,从而避免数据的不一致性和竞争条件的发生。 Linux VFS文件主要有两种类型:共享(读)和独占(写)。共享允许多个进程或线程同时对文件进行读操作,而独占则只允许一个进程或线程对文件进行写操作。 在Linux中,文件是通过fcntl系统调用来实现的。具体而言,可以使用fcntl函数来获取、设置和释放文件。fcntl函数的相关参数包括文件描述符、类型、起始位置和长度等。 以下是一些关于Linux VFS文件的常见问题及回答: 1. 什么是共享和独占? 共享(读)允许多个进程或线程同时对文件进行读操作,不会阻塞其他进程或线程的读操作。独占(写)则只允许一个进程或线程对文件进行写操作,其他进程或线程的读写操作都会被阻塞。 2. 如何获取文件? 可以使用fcntl函数来获取文件。通过设置fcntl函数的参数,可以指定类型、起始位置和长度等信息。 3. 文件的作用是什么? 文件可以确保同一时间只有一个进程或线程能够对文件进行写操作,从而避免数据的不一致性和竞争条件的发生。它在多进程或多线程环境下起到了并发访问控制的作用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值