【发布时间】:2014-12-06 11:24:33
【问题描述】:
如何在读取文件时阻止文件(通过 fopen 或在 linux 中打开),以防止在读取过程中进行任何修改?
我拥有的:1 个包含数据的文件;我想在我的函数中从中读取数据,所以我使用 fopen():
文件 *file = fopen(fileName, "r"); 现在我需要一些东西来阻止我的文件 - 任何(或仅当前用户的变体)另一个进程不得对其进行任何访问(或仅将其修改为变体),直到我的函数允许他们这样做强>
我想,我可以为它们设置 chmod 标志并在下班后重新设置它们; 或者使用带有特殊标志参数的 open() 函数,但这是不可取的,因为我想在函数中使用 fgets();
有没有例子说明怎么做?
【问题讨论】:
-
请参阅建议和强制文件锁定。如果您想阻止来自您无法控制的 pgm 的访问(即您没有编写或无法更改它们),那么您可能需要强制锁定,但请考虑您是否真的需要,因为您必须首先对文件系统做一些事情。见
flock、fcntl等。