动态网站制作指南 [  QQ表情  ]
[ 投票调查 ]
[ 企业邮箱 ]
[ 网站空间 ]
网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
ASP源码 | .Net源码 | PHP源码 | JSP源码 | JAVA源码 | CGI源码 | VB源码 | C++源码 | Delphi源码 | PB源码 | VF源码 | 汇编 | 服务器
电脑书籍下载:程序设计书籍 | 数据库教程书籍 | 平面与多媒体书籍 | 网络通讯书籍 | 系统管理书籍 | 网络安全书籍 | 认证考试书籍
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 操作系统 > Linux教程
文章搜索服务
邮件订阅
输入你的邮件地址,
你将不会错过任何关于:
[ Linux教程 ]的信息



本月文章推荐
.Linux 指令篇:文件系统--swapon.
.Linux用户要注意修复漏洞.
.Linux 网管 123 --- 第6章. 一般.
.Jaz-drive HOWTO -- 2. Jaz 磁碟.
.Linux命令Man解释:whatis:搜寻特.
.Linux操作系统内核抢占补丁的基本.
.Linux命令Man解释:man : 显示线上.
.Linux系统下用一条命令批量修改图.
.用rsync修复不完整的Linux光盘映.
.搭建基于Linux桌面环境的影音平台.
.解读Linux文件权限的设置方法.
.无法启动系统.
.Unix遇威胁Linux市场成倍增长.
.网友列举22项Windows或Mac不能而.
.初次安装Linux系统手记.
.Linux与Unix文件系统备份和恢复方.
.在Linux操作系统里如何禁用一个用.
.Linux 指令篇:文件系统--e2fsck.
.Linux中文件查找技术大全.
.Linux Enterprise 5.0 ftp/ssh配.

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

发表日期:2008-5-14 |


 

一、概述

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操作系统下配置CVS 集成cvstrac 人气:315
下一篇:关于安装netbeans 找不到JDK的问题解决 人气:459
浏览全部Linux的内容 Dreamweaver插件下载 常用网页广告代码全集
  最新网站源码 最新软件下载
2008-7-23 Menalto Gallery v2.3 Rc1 多国语
2008-7-23 深度学习网址导航系统 v2.6.1
2008-7-23 因特达crm2008客户关系管理系统
2008-7-23 60度 CMS v1.0 Build 080723
2008-7-23 幻影动漫网视频系统(Ppdong) v1.
2008-7-23 好易祝福墙 2008
2008-7-23 APJE私服发布系统 v2.0 PHP版
2008-7-23 毕业论文在线指导系统源码
2008-7-23 Jacky法律在线网站源码
2008-7-19 UltraEdit 简体中文增强版 14.10
2008-7-19 CentOS 5.2 i386 LiveCD
2008-7-19 Snapture多功能相机 v1.4
2008-7-19 iAcces中文输入法 v1.0Build016
2008-7-19 Cookbook烹饪秘籍 v2.5
2008-7-19 苹果专用DVD转换工具 v1.1.59汉化
2008-7-19 Modem修复软件ZiPhone修改版04.0
2008-7-19 AgileMessenger即时通讯工具美化
2008-7-19 Sketches画图软件 v0.7b6破解版


  发表评论
姓 名: 验证码:
内 容:
[ 汉字翻译拼音 ] [ 广告代码 ] [ 符号对照表 ] [ 进制转换 ] [ 经典小工具 ] [ 个税计算 ] [ 汉字简繁转换 ] [ 普通单位换算 ] [ 公制单位换算 ]
[ 生辰老黄历 ] [ 国内电话区号 ] [ 国家代码与域名缩写 ] [ 文字加密解密 ] [ 健康查询 ] [ 万年历 ] [ 手机号码查询 ] [ ip搜索 ] [ Google PR查询 ]
业务联系 | 广告刊登 | 频道合作 | 投稿荐稿 | 联系方式 | 加入收藏 | RSS订阅
Copyright © 2000-2008 www.knowsky.com All rights reserved | 网络实名:动态网站制作指南 | 沪ICP备05001343号
ホームページ制作 不動産検索システム 求人情報
防水工事·改修工事 フットサル大会 探偵