首页 > 安全 > 关键词 > Linux操作系统,创建锁文件最新资讯 > 正文

新手看招:在Linux操作系统下创建锁文件

2008-11-07 17:47 · 稿源:赛迪网

一、概述

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, 0444);
if (file_desc < 0)
{
save_errno = errno;
printf("Open failed with error is %d\n", save_errno);
}
else {
printf("Open succeeded\n");
}

exit(EXIT_SUCCESS);
}

第一次运行程序:

$ lock

输出如下:

Open succeeded

我们再次运行程序:

$ lock

输出如下:

Open failed with error is 17

分析:

第一次运行程序时,由于文件并不存在,所以执行成功。对于后续的执行,因为文件已经存在而失败了。若想程序再次执行成功,必须删除锁文件。

在Linux系统中,通常错误号码17代表的是EEXIST,此错误用以表示一个文件已存在。错误号定义在头文件errno.h或(更常见的)它所包含的头文件中。

网友热搜:

  • 相关推荐
  • 大家在看
  • linux系统入门用什么书好

    有朋友问我为何学习Linux,其实我刚开始学习时也有这个疑问,不知道它的用处何在,它的优点何在,就会有这样的疑问,只是看到好多人都在学习,很好奇,自己也想学一下,但又不知道为何要学它。后来我就在网上和图书馆找Linux相关的知识和书籍,对其知识有了全面的了解后决定是不是要学习,就不会盲目跟风,明白自己为何要学习是很重要的。言归正传,为何要学习Linux呢,首先了解一下Linux,它是一套可以供大家免费使用的类Unix操作

  • linux系统入门用什么书好

    有朋友问我为何学习Linux,其实我刚开始学习时也有这个疑问,不知道它的用处何在,它的优点何在,就会有这样的疑问,只是看到好多人都在学习,很好奇,自己也想学一下,但又不知道为何要学它。后来我就在网上和图书馆找Linux相关的知识和书籍,对其知识有了全面的了解后决定是不是要学习,就不会盲目跟风,明白自己为何要学习是很重要的。言归正传,为何要学习Linux呢,首先了解一下Linux,它是一套可以供大家免费使用的类Unix操作

  • 京东数科中标江苏智慧园博项目,将打造智能文旅操作系统

    DoNews 6月4日消息(记者 向密) 京东数字科技集团宣布中标江苏园博园(一期)项目,京东数科将作为技术总牵头方负责智慧园博的项目建设工作。根据介绍,未来在云计算、5G、IoT、人工智能等新基建相关技术的支持下,京东数科将整合京东集团资源,以智能城市操作系统为数字技术底座,为江苏园博园打造智能文旅操作系统——园博超脑,与合作伙伴一起构建起一整套服务景区管理者、企业和游园旅客的智慧园博生态体系。与常规智慧景区平

  • 微软高调回归安卓!为Surface Duo打造基于Android 11操作系统

    去年十月份的微软发布会上,登场的Surface Duo可以说给不少人留下了很深的印象。而此后微软一直保持着相当低调的姿态。6月19日,据外媒报道,Surface Duo或最快于8月上市,并且微软已经开始为

  • 360浏览器正式通过数字认证入根申请 完美兼容10+操作系统

    近日,360浏览器宣布通过了北京数字认证股份有限公司(以下简称:数字认证)的入根申请,将正式信任数字认证请求预置的数字证书,并安排入根,随360浏览器正式版本发布。数字认证是国内权威的

  • Win10新预览版19645推送:修复中文输入法无法切换、Linux内核从镜像剥离

    今晨,微软面向快速通道(Fast Ring)的Insider会员推送新预览版,操作系统版本号Build 19645。经查,Build 19645属于mn_release分支,在微软切换到rs_prerelease之前,我们的确很难看到新功能

  • iOS14怎么降级到iOS13?iOS14系统降级操作流程

    iOS14系统在苹果6月底的WWDC开发者大会上正式公布,随后也公布了测试版,不少用户开始升级该系统尝鲜,但想要降级回iOS13想要进行什么样的操作呢,这里我们来看下iOS14降级至iOS13的降级步骤

  • Epic怎么验证本地游戏文件

    在电脑上如果安装了一些游戏,想要让Epic检测扫描到,需要进行什么样的操作,才可以让本地的游戏被发现呢,这里我们来看下Epic平台上本地游戏被扫描到的具体方法。

  • 我从创建应用中学到的12条病毒式传播法则

    托马斯·普约(Tomas Pueyo)是一名工程师,利用业余时间,他开发了手机游戏并在app store上发布,纯属娱乐。然而,某一天,他发现这款游戏火了。在不到 2 个月的时间里,它的下载量就达到了 5000 万。然后,很快它的增长就停滞了。因为太多人开发这种类型的游戏了。

  • 耶鲁智能锁与Yale Access完美组合 让生活事半功倍

    在对于生活质量与要求越来越高的年代,耶鲁这个拥有 180 年悠久历史的品牌,创新推出yaleaccessapp。通过该app,可以绑定家庭中的耶鲁智能设备,轻松管理耶鲁智能锁,让生活事半功倍。 YaleAccess可以做什么? 从功能上看,YaleAccess连结起了耶鲁旗下的智能门锁、智能家居门铃、智能闭路电视、电子猫眼等各类产品,用互联网与高科技构建起家庭安防牢不可破的保卫圈。 YaleAccess可以实时推送信息,将家中智能锁的开锁信息传递到

  • 微信拍一拍怎么操作

    微信拍一拍怎么操作?微信日前上线了「微信拍一拍」功能,相信很多网友已经收到很多好友的拍一拍。微信拍一拍功能是在微信最新的 7.0.13 及以上版本中的一个彩蛋小功能,默认开启,目前用户还不能手动关闭。那么微信拍一拍怎么操作呢?以下是关于微信拍一拍怎么操作的详细解答。

  • 好看视频缓存在哪个文件夹

    好看视频中,如果你看了很多视频的话,其实都会产生缓存的,如果长期的不清理缓存的话,会占用你手机越来越多的存储空间,所以很多人想知道好看视频的缓存文件在哪,下面就来为大家详细的介绍一下。

  • AppClips是什么功能 AppClips怎么使用

    苹果iOS14系统中加入了一个全新的AppClips功能,这个功能是可以让用户不下载全部应用的情况下就可以使用该应用的功能,那么AppClips是怎么使用,这里我们来了解下AppClips功能的介绍。

  • 喜茶道歉:门店操作不规范造成,将进行整改

    近日,南京抽检 16 批次果茶、 6 批次食用冰,其中就包含了市场上比较热门的茶饮品牌喜茶、奈雪、一点点等。结果显示:喜茶的一款食用冰菌落总数超标; 4 款果茶/奶茶中菌落总数高于同类标准, 3 款被检出大肠菌群,存在微生物污染。市场监管部门已约谈相关负责人。

  • iOS13.6Beta2描述文件下载 苹果iOS13.6开发版描述文件在哪下载

    iOS13.6Beta2在6月10日正式推送了,此次版本更新的内容不是很多,一些朋友想更新到iOS13.6开发者版,下面就来为大家分享一下iOS13.6Beta2 描述文件下载。

  • iOS14应用锁在哪 iOS14新功能应用锁详解

    苹果iOS14系统中加入了应用锁的新功能,这项功能的作用是什么样的,在哪里可以打开应用锁呢,这里我们来一起看下苹果iOS14系统应用锁的介绍。

  • 怎样恢复SD卡删除文件?四个步骤轻松找回

    怎样恢复SD卡删除文件?四个步骤轻松找回!SD卡在目前的生活中,具有携带方便,存储容量大的优势而赢得了很多用户的喜爱,但是也有很多用户在使用过程中往往也都会不小心把SD卡格式化,当数据丢失后,我们又该如何找回呢?毕竟SD卡不同于其它存储设备,所删除的不会像电脑一样可以通过回收站的形式进行找回。只能借助一些专业的SD卡数据恢复工具进行找回。那么对于这些误删除的文件来说,当数据丢失后,我们又该如何找回呢?怎样才能找

  • iOS 14预览版险提前泄漏:苹果迅速撤回相应文件

    据外媒报道称,今天早些时候有一些开发者发现,苹果悄然发布了iOS 14 Developer Beta开发者预览升级的描述文件,不过最后时刻官方撤回了这个文件,防止新系统提前泄露。按照开发者的说法,iOS

  • iOS13.6Beta3开发者版描述文件下载地址 苹果ios13.6描述文件在哪下载

    苹果iOS13.6开发者预览版Beta3的版本发布了,这个版本主要是修复了一些bug和提高了性能,一些小伙伴还不知道在哪可以下载iOS13.6开发者预览版Beta3的描述文件,下面就来为大家分享一下下载的地址。

  • 科技达人王自如直播带货鹿客智能锁,直击618底价

    直播带货已经成了当下最热风口,各种达人明星纷纷上阵直播卖货,从化妆品、衣服到食品、日用品、家居用品不一而足,也有不少人尝试带货3C类的智能科技产品,但是战果显著的却不多,销售额高的品类还是一些单价较低的快消品类。而真正在3C科技产品这一块带货成功的当属科技达人王自如莫属,此前更是创下华为手机单场销售额破亿的记录。王自如是目前国内数码行业知名的自媒体评论人,许多小米手机,苹果手机的深度测评也出自王自如?

  • 参与评论
文明上网理性发言,请遵守新闻评论服务协议

热文

  • 3 天
  • 7天