在多个进程同时操作同一份文件的过程中,很容易导致文件中的数据混乱,需要锁操作来保证数据的完整性,这里介绍的针对文件的锁,称之为“文件锁”-flock。

flock,建议性锁,不具备强制性。一个进程使用flock将文件锁住,另一个进程可以直接操作正在被锁的文件,修改文件中的数据,原因在于flock只是用于检测文件是否被加锁,针对文件已经被加锁,另一个进程写入数据的情况,内核不会阻止这个进程的写入操作,也就是建议性锁的内核处理策略。
flock主要三种操作类型:
进程使用flock尝试锁文件时,如果文件已经被其他进程锁住,进程会被阻塞直到锁被释放掉,或者在调用flock的时候,采用LOCK_NB参数,在尝试锁住该文件的时候,发现已经被其他服务锁住,会返回错误,errno错误码为EWOULDBLOCK。即提供两种工作模式:阻塞与非阻塞类型。
服务会阻塞等待直到锁被释放:
flock(lockfd,LOCK_EX)
服务会返回错误发现文件已经被锁住时:
ret = flock(lockfd,LOCK_EX|LOCK_NB)
同时ret = -1, errno = EWOULDBLOCK
flock锁的释放非常具有特色,即可调用LOCK_UN参数来释放文件锁,也可以通过关闭fd的方式来释放文件锁(flock的第一个参数是fd),意味着flock会随着进程的关闭而被自动释放掉。
flock其中的一个使用场景为:检测进程是否已经存在;
int checkexit(char* pfile)
{
if (pfile == NULL)
{
return -1;
}
int lockfd = open(pfile,O_RDWR);
if (lockfd == -1)
{
return -2;
}
int iret = flock(lockfd,LOCK_EX|LOCK_NB);
if (iret == -1)
{
return -3;
}
return 0;
}
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
# 文件锁
# linux
# flock
# flock命令
# linux 可执行文件与写操作的同步问题(文件读写操作产生的锁机制)
# 浅析Linux下一个简单的多线程互斥锁的例子
# linux shell之文件锁
# Linux多线程锁属性设置方法
# linux中各种锁机制的使用与区别详解
# 锁住
# 多个
# 加锁
# 第一个
# 两种
# 很容易
# 可以通过
# 三种
# 可以直接
# 可以使用
# 不具备
# 该文件
# 大家多多
# 与非
# 只允许
# 过程中
# 称之为
# 错误码
# strong
# ul
相关文章:
建站三合一如何选?哪家性价比更高?
建站之星CMS建站配置指南:模板选择与SEO优化技巧
电脑免费海报制作网站推荐,招聘海报哪个网站多?
如何用好域名打造高点击率的自主建站?
广州网站制作的公司,现在专门做网站的公司有没有哪几家是比较好的,性价比高,模板也多的?
公司网站制作价格怎么算,公司办个官网需要多少钱?
如何用wdcp快速搭建高效网站?
建站之星备案是否影响网站上线时间?
如何在新浪SAE免费搭建个人博客?
免费网站制作模板下载,除了易企秀之外还有什么H5平台可以制作H5长页面,最好是免费的?
5种Android数据存储方式汇总
定制建站价位费用解析与套餐推荐全攻略
小型网站建站如何选择虚拟主机?
高防服务器租用如何选择配置与防御等级?
公众号网站制作网页,微信公众号怎么制作?
如何用IIS7快速搭建并优化网站站点?
官网建站费用明细查询_企业建站套餐价格及收费标准指南
动图在线制作网站有哪些,滑动动图图集怎么做?
html制作网站的步骤有哪些,iapp如何添加网页?
建站之星如何开启自定义404页面避免用户流失?
文字头像制作网站推荐软件,醒图能自动配文字吗?
建站IDE高效指南:快速搭建+SEO优化+自适应模板全解析
如何选择高效便捷的WAP商城建站系统?
如何快速搭建个人网站并优化SEO?
如何通过FTP空间快速搭建安全高效网站?
如何在Windows虚拟主机上快速搭建网站?
零服务器AI建站解决方案:快速部署与云端平台低成本实践
c# 在高并发下使用反射发射(Reflection.Emit)的性能
如何正确选择百度移动适配建站域名?
上海制作企业网站有哪些,上海有哪些网站可以让企业免费发布招聘信息?
昆明网站制作哪家好,昆明公租房申请网上登录入口?
如何获取PHP WAP自助建站系统源码?
标准网站视频模板制作软件,现在有哪个网站的视频编辑素材最齐全的,背景音乐、音效等?
网站制作的方法有哪些,如何将自己制作的网站发布到网上?
威客平台建站流程解析:高效搭建教程与设计优化方案
如何在Ubuntu系统下快速搭建WordPress个人网站?
如何用y主机助手快速搭建网站?
简单实现Android文件上传
网站制作网站,深圳做网站哪家比较好?
已有域名和空间,如何快速搭建网站?
建站主机空间推荐 高性价比配置与快速部署方案解析
如何通过cPanel快速搭建网站?
网站制作中优化长尾关键字挖掘的技巧,建一个视频网站需要多少钱?
网站制作价目表怎么做,珍爱网婚介费用多少?
黑客如何利用漏洞与弱口令入侵网站服务器?
C++时间戳转换成日期时间的步骤和示例代码
常州自助建站工具推荐:低成本搭建与模板选择技巧
seo网站制作优化,网站SEO优化步骤有哪些?
宝塔面板创建网站无法访问?如何快速排查修复?
如何在建站主机中优化服务器配置?
*请认真填写需求信息,我们会在24小时内与您取得联系。