仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 565|回复: 8
打印 上一主题 下一主题

[其他Linux] 来讲讲:在Linux操纵体系下创立锁文件

[复制链接]
小女巫 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 14:02:24 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
开发linux发行版的人都是通读过linux内核代码,对linux原理极其精通的人。
1、概述
  Linux供应了多种特征来完成文件锁定。个中最复杂的办法就是以原子操纵的体例创立锁文件,所谓“原子操纵”就是在创立锁文件时,体系将不同意任何别的的事变产生。
这就给程序供应了一种确保它所创立的文件是独一性的体例,且该文件不成能被别的程序在统一时候创立。
  2、办法
  锁文件仅仅是充任一个唆使器的脚色,程序间必要经由过程互相合作来利用它们。锁文件只是倡议性锁,与此对峙的是强迫性锁。
  为创立一个用作唆使器的文件,我们利用带O_CREATE和O_EXCL标记的open体系挪用。这将使我们以一个原子操纵同时完成两项事情:断定文件不存在,然后创立它。
  3、完成
  以下为援用的内容:
  //file:lock.c
  #include
  #include
  #include
  #include
  #include
  intmain()
  {
  intfile_desc;
  intsave_errno;
  file_desc=open("/tmp/LockFile.test",O_RDWR|O_CREAT|O_EXCL,0444);
  if(file_desc<0)
  {
  save_errno=errno;
  printf("Openfailedwitherroris%dn",save_errno);
  }
  else{
  printf("Opensucceededn");
  }
  exit(EXIT_SUCCESS);
  }
  第一次运转程序:
  $lock
  输入以下:
  Opensucceeded
  我们再次运转程序:
  $lock
  输入以下:
  Openfailedwitherroris17
  剖析:
  第一次运转程序时,因为文件其实不存在,以是实行乐成。关于后续的实行,由于文件已存在而失利了。若想程序再次实行乐成,必需删除锁文件。
  在Linux体系中,一般毛病号码17代表的是EEXIST,此毛病用以暗示一个文件已存在。毛病号界说在头文件errno.h或(更罕见的)它所包括的头文件中

</p>
系统安全相关命令:passwd、su、umask、chgrp、chmod、chown、chattr、sudo、pswho
活着的死人 该用户已被删除
沙发
发表于 2015-1-18 11:39:00 | 只看该作者
学习Linux系统在服务中的配置方法及使用方法。Linux在服务器中应用相当广,应对常用的apache,samba,ftp等服务器基本配置清楚了解。[重点,应巩固学习]
变相怪杰 该用户已被删除
板凳
发表于 2015-1-26 10:53:50 | 只看该作者
任何一个叫做操作系统的东西都是这样子构成的:内核+用户界面+一般应用程序。
精灵巫婆 该用户已被删除
地板
发表于 2015-2-4 16:03:48 | 只看该作者
虽然大家都比较喜欢漂亮的mm,但是在学 linux 的过程中,还是要多和“男人”接触一下:P 遇到问题的时候,出来看说和上网查之外,就是要多用 linux 下的 man 命令找找帮助。
小女巫 该用户已被删除
5#
 楼主| 发表于 2015-2-10 03:55:17 | 只看该作者
为了更好的学习这门课程,我不仅课上认真听讲,课下也努力学习,为此还在自己的电脑上安装了Ubuntu系统。
小妖女 该用户已被删除
6#
发表于 2015-2-28 19:27:40 | 只看该作者
学习Linux系统在服务中的配置方法及使用方法。Linux在服务器中应用相当广,应对常用的apache,samba,ftp等服务器基本配置清楚了解。[重点,应巩固学习]
谁可相欹 该用户已被删除
7#
发表于 2015-3-10 07:18:29 | 只看该作者
Windows有MS-DOS?方式,在该方式下通过输入DOS命令来操作电脑;Linux与Windows类似,也有命令方式,Linux?启动后如果不执行?X-WINDOWS,就会处于命令方式下,必须发命令才能操作电脑。?
乐观 该用户已被删除
8#
发表于 2015-3-17 06:08:02 | 只看该作者
如果你想深入学习Linux,看不懂因为文档实在是太难了。写的最好的、最全面的文档都是英语写的,最先发布的技术信息也都是用英语写的。
蒙在股里 该用户已被删除
9#
发表于 2015-3-23 23:07:22 | 只看该作者
目前全球有超过一百多个Linux发行版本,在国内也能找到十几个常见版本。如何选择请根据你的需求和能力,RedhatLinux和DebianLinux是网络管理员的理想选择。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-23 23:42

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表