位置: 编程技术 - 正文

linux 新手教程之创建锁文件的方法(linux简明教程)

编辑:rootadmin
一、概述 Linux提供了多种特性来实现文件锁定。其中最简单的方法就是以原子操作的方式创建锁文件,所谓“原子操作”就是在创建锁文件时,系统将不允许任何其它的事情发生。这就给程序提供了一种确保它所创建的文件是唯一性的方式,且该文件不可能被其它程序在同一时刻创建。 二、方法 锁文件仅仅是充当一个指示器的角色,程序间需要通过相互协作来使用它们。锁文件只是建议性锁,与此对立的是强制性锁。 为创建一个用作指示器的文件,我们使用带O_CREATE和O_EXCL标志的open系统调用。这将使我们以一个原子操作同时完成两项工作:确定文件不存在,然后创建它。 三、实现 复制代码代码如下: //file : lock.c #i nclude <unistd.h> #i nclude <stdlib.h> #i nclude <stdio.h> #i nclude <fcntl.h> #i nclude <errno.h> int main() { int file_desc; int save_errno; file_desc = open("/tmp/LockFile.test", O_RDWR | O_CREAT | O_EXCL, ); if (file_desc < 0) { save_errno = errno; printf("Open failed with error is %dn", save_errno); } else { printf("Open succeededn"); } exit(EXIT_SUCCESS); } 第一次运行程序: $ lock 输出如下: Open succeeded 我们再次运行程序: $ lock 输出如下: Open failed with error is 分析: 第一次运行程序时,由于文件并不存在,所以执行成功。对于后续的执行,因为文件已经存在而失败了。若想程序再次执行成功,必须删除锁文件。 在Linux系统中,通常错误号码代表的是EEXIST,此错误用以表示一个文件已存在。错误号定义在头文件errno.h或(更常见的)它所包含的头文件中。

推荐整理分享linux 新手教程之创建锁文件的方法(linux简明教程),希望有所帮助,仅作参考,欢迎阅读内容。

linux 新手教程之创建锁文件的方法(linux简明教程)

文章相关热门搜索词:linux新手入门,linux的快速入门,linux入门基础教程,linux详细教程,linux入门基础教程,linux 初学,linux新手知识,linux新手知识,内容如对您有帮助,希望把文章链接给更多的朋友!

光驱的软开关与限速简介 一、光驱的软开关:eject-rcdrom,弹开指定光驱设备的仓门,如只有一个光驱,直接用eject就可,如有两个光驱设备根据/dev/下设备文件来指定设备,如我

配置Linux 保证其系统的安全 众所周知,网络安全是一个非常重要的课题,而服务器是网络安全中最关键的环节。Linux被认为是一个比较安全的Internet服务器,作为一种开放源代码操

黑客怎样入侵Linux系统 我发现了一个网站,于是常规入侵。很好,它的FINGER开着,于是我编了一个SHELL,aaa帐号试到zzz(bytheway,这是我发现的一个网上规律,那就是帐号的长度

标签: linux简明教程

本文链接地址:https://www.jiuchutong.com/biancheng/365515.html 转载请保留说明!

上一篇:Wine 中文存在很多的乱码怎么解决方法(winedt中文界面)

下一篇:光驱的软开关与限速简介(开关光驱是平移还是旋转)

  • 融资利息进项税如何抵扣
  • 在建工程人员工资计入产品成本吗
  • 公司向法人借款会计分录
  • 法人能把公司账户的钱都转走么
  • 业务员报销差旅费会计分录怎么做
  • 收到外境来电
  • 预包装食品是否备案怎么查询
  • 如何分清进口农产品增值税抵扣率
  • 个体户逾期申报罚款多少
  • 独资合伙企业的所有者用于承担企业财务风险的财产是
  • 上月未抵扣完的进项税额
  • 收到总工会转工资怎么办
  • 物业管理负责电路吗
  • 非经营性费用包括哪些内容
  • 公司承担了个人社保如何入账
  • 保险公司如何计算车辆折旧
  • 高杠杆资金是什么意思
  • 会计师事务所执业许可和监督管理办法
  • 利润表中财务费用可以为负数吗
  • 收回代付费用用什么科目
  • wd discovery怎么安装
  • 营运能力指标正常范围
  • 结转已经销售商品成本
  • 个人出租住宅需要交哪些税
  • PHP+Mysql+jQuery实现发布微博程序 php篇
  • sessmgr.exe - sessmgr是什么进程 有什么用
  • 360pci.exe
  • vue引入echarts柱状图
  • 科尼西卡神庙在哪里
  • 莫尼莫克房车
  • php获取并显示用户的用户名
  • 级联选择器 数据回显
  • vue自定义dialog
  • 钢琴块小游戏在线玩
  • vue路由使用方法
  • Vue(ref和$refs属性介绍与使用)
  • linux rdp客户端
  • at命令每天任务
  • 代收代付业务需要开发票吗
  • 电子发票如何发邮箱给别人
  • 购买理财资金来源规定
  • python正态分布采样
  • 科技经费使用
  • 收到服务费的增值税发票
  • sqlserver编程
  • 申报错误后处理有影响吗
  • 小规模纳税人收入会计分录
  • 公司出售二手车要交哪些税
  • 审计助理是干啥的
  • 明细账分类账登记
  • 交车辆购置税需要什么材料
  • 逾期未缴税款法律依据
  • 小规模纳税人发票可以抵扣吗
  • 经营性应付项目减少对经营活动现金
  • 检查sql脚本语法
  • 在mysql中使用什么语句来查询数据
  • 获取sqlsession
  • windows server特点
  • windows.h在linux中
  • Red Hat Enterprise Linux 4+Nginx 0.7.47+PHP5.2+MYSQL5.0+Memcache+eAccelerator收
  • demon.exe是什么
  • win7win8双系统怎么装
  • UNITY 4.6.2 IOS 64-BIT SUPPORT
  • opengl opengl
  • 显示解析包时出错是怎么回事
  • 一起学ap
  • js日历控件代码和效果
  • jquery form序列化
  • nodejss
  • node.js异步编程
  • python的爬虫模块
  • Unity3D游戏开发pdf
  • 设计模式的原则
  • js设置rem
  • js跨域解决方案
  • javascript教程代码
  • 陕西省国家税务总局班子成员
  • 目的地查验和口岸查验费用一样吗
  • 铁路运费发票可以抵扣几个点
  • 国税局和地税局有什么区别
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设