成立锁文件到Linux操作系统里[网络技术]
本文“成立锁文件到Linux操作系统里[网络技术]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
办法
锁文件仅仅是充当一个指导器的角色,程序间需求通过彼此合作来利用它们.锁文件只是倡议性锁,与此对峙的是强迫性锁.
为成立一个用作指导器的文件,我们利用带O_CREATE和O_EXCL标志的open系统调用.这将使我们以一个原子操作同时完成两项工作:肯定文件不存在,然后成立它.
实现
//file : lock.c
#i nclude
#i nclude
#i nclude
#i nclude
#i nclude
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 %dn", save_errno);
}
else {
printf("Open succeededn");
}
exit(EXIT_SUCCESS);
}
第一次运行程序:
$ lock
输出以下:
Open succeeded
我们再次运行程序:
$ lock
输出以下:
Open failed with error is 17
解析:
第一次运行程序时,由于文件并不存在,所以履行成功.关于后续的履行,因为文件已经存在而失利了.若想程序再次履行成功,必须删除锁文件.
在Linux系统中,普通错误号码17代表的是EEXIST,此错误用以表示一个文件已存在.错误号定义在头文件errno.h或(更常见的)它所包含的头文件中.
以上是“成立锁文件到Linux操作系统里[网络技术]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |