1)文件锁定
所谓的文件锁定,指的是以独占的方式打开文件。一个程序打开文件以后,其它的程序不能读取或写入文件。文件锁定有利于文件内容的一致性。本节将讲解文件的锁定权限问题。
文件锁定的理解:当多个程序程序同一个文件时,可能导致文件的内容不一致情况。例如一个文件中的数据是一个账户金额。用户打开这个文件读取数据,进行处理以后将写结果写入到文件。如果文件没有进行锁定时,可以发生下面这种错误。(1)假设置文件中的数据为10000。用户A打开文件读取这个数据,读取了这个数据。但是还没有及时的写入。
(2)这时,用户B读取这个数据,将结果加10000。然后将结果20000写入到这个文件。
(3)用户A的处理时间较长,比用户B早读入数据,但后写入数据。A将数据加1000,得到11000,然后将数据写入到文件。
这时就发生了一个错误,用户B的数据丢失。这时需要在打开文件时进行文件锁定,正确的做法如下所示。
(1)假设置文件中的数据为10000。用户A打开文件读取这个数据,读取了这个数据。但是还不能及时的写入,于是将文件加一把锁,不允许别的用户访问。
(2)用户B访问这个文件时,文件已经加锁,无法访问。于是等待用户A完成数据访问。
(3)用户A完成数据处理以后,将信息写入到文件,这时解除对文件的锁定。
(4)这时用户B可以对文件进行访问。访问的同时,对文件添加一个锁定。在解除锁定以前,其他的用户不能访问这个文件。
文件锁定函数flock:在访问一