linux的文件控制

在linux编程中大部分人很少遇到文件的控制,只会正常的读写文件,但是如果多个进程同时读写一个文件时,

就会出现同步问题,如果通过进程间的通信来控制不同的进程对同一个文件读写是可以的,但是这样设计起来

就很复杂的,我们会想如何过有个控制量能控制文件的读写就可以啦,你想对了确实有这么一个量---文件锁

下面就介绍一下文件锁的用法


struct flock{

short l_type; // 锁的类型

off_t l_start; //文件开始的位置

short l_whence; //偏离地址

off_t l_len; //锁定的长度

pid_t pid; //锁定的进程号

};

首先对一个文件的操做只有3种情况,读锁,写锁,无锁。因此l_type 对应的值可以是 F_RDLCK,F_WRLCK,F_UNLCK;

l_start 为相对的偏移量

l_whence相对位移的起点可选值有 SEEK_SET,SEEK_END,SEEK_CUR


在读过进程同时读取一个文件的时候,不会出现任何不一样的可能性,因此一个文件可以被多个进程读锁,但是如果同时写的时候

就会出现问题,因此同一个文件只能被一个进程写锁。

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值