为Linux新教程创建锁定文件的方法
Linux提供了多种功能来实现文件锁定,最简单的方法是通过原子操作创建锁文件。所谓的原子操作是在创建锁文件时,系统不会允许其他任何事情发生,这使得程序能够确保它创建的文件是唯一的,并且文件不能与其他程序相同。
首先,概述
Linux提供了多种功能来实现文件锁定,最简单的方法是通过原子操作创建锁文件。所谓的原子操作是在创建锁文件时,系统不会允许其他任何事情发生,这使得程序能够确保它创建的文件是唯一的,并且该文件不能被其他程序同时创建。
两。方法
锁文件只是一个充当指示器的角色,程序需要通过协作来使用。
创建一个文件,是用来作为一个指标,我们使用开放的系统调用o_create和o_excl标签。这将使我们能够在一个原子操作的同时做两项任务:确保文件不存在,就创建它。
三。实现
复制代码代码如下所示:
文件:锁定。
我包括
我包括
我包括
我包括
我包括
主()
{
国际file_desc;
国际save_errno;
file_desc =开放( / /锁定文件测试TMP。
如果(file_desc<0)
{
save_errno =错误;
printf(打开失败,错误为%d
}
{其他
printf(打开成功;
}
退出(exit_success);
}
首次运行程序:
$锁
输出如下:
打开成功
我们再次运行程序:
$锁
输出如下:
打开失败的错误是17
分析uff1a
当程序第一次运行时,执行是成功的,因为文件不存在。为了以后的执行,文件由于文件的存在而失败。如果你想让程序再次执行,你必须删除锁文件。
在Linux系统中,错误号17代表的是eexist,它用来表示文件已经存在。错误号是在头文件中定义的错误。H或(更常见)它包含头文件。