在C ++中锁定和解锁文件

时间:2019-04-01 14:12:27

标签: c++

在Windows OS的C ++应用程序中,我必须保护已经存在的整个文件,并且我应该能够对该文件进行读写操作。

在关闭文件之前,我应该保护文件,以便除我的应用程序或任何用户之外的其他用户无法访问该文件?

如何在C ++中实现这一目标?

我正在使用

FILE * fp;
fp = fopen ("file.txt", "w+");

谢谢。

2 个答案:

答案 0 :(得分:2)

C ++不提供文件锁定或文件安全功能,因此您必须依赖Platform API。 在Windows中,打开文件时为LockFileEx()UnlockFileEx(),关闭文件时为File Security and Access Rights

也就是说,Windows中的安全性是一个非常复杂的主题,因此您应该描述您要实现的目标。我认为您需要禁止其他应用读取文件,因此在这种情况下,您必须使用密码对文件进行加密。

答案 1 :(得分:0)

我认为使用标准C或C ++或直接使用FILE*对象是不可能的。话虽这么说,Windows具有LockFileUnlockFile API,并且您可以使用fcntl

在Posix系统上实现相同的目的