在阅读文件时如何阻止文件(通过Fopen或在Linux中打开),以防止阅读时进行任何修改?
我有什么:1个带有数据的文件;我想在功能中从中读取数据,因此我使用fopen():
文件 *file = fopen(fileName,“ r”); 现在,我需要一些东西来阻止我的文件 - (或仅当前用户作为变体)另一个过程不得对其进行任何访问(或仅将其作为变体修改),直到我的函数允许他们进行IT
我假设,我可以使用SET CHMOD标志为它们做到这一点,并在下班后将其放回原处; 或使用特殊标志参数使用open()函数,但这不是可取的,因为我想使用function in function;
有任何如何做的例子?
荧光来做到这一点。但是,由于您想用fopen
而不是
open
打开文件,因此您需要首先使用fileno获取文件描述符。例如:
FILE* f = fopen(...);
int fd = fileno(f);
// flock should return zero on success
flock(fd, LOCK_EX);
将放置一个独家锁 - 如果您想要共享锁,请将
LOCK_EX
更改为
LOCK_SH
。
struct fanotify_response response; response.fd = metadata.fd; response.response = FAN_DENY;