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

在C++中锁定和解锁文件 在Windows操作系统中,在我的C++应用程序中,我必须保护已经存在的整个文件,并且我应该能够对该文件进行读写操作。,c++,C++,在关闭文件之前,我应该保护该文件,以便除我的应用程序或任何用户之外的其他人都无法访问该文件 如何在C++中实现这一点? 我正在使用 FILE * fp; fp = fopen ("file.txt", "w+"); 提前感谢。C++不提供文件锁定或文件安全功能,因此您必须依赖平台API。 在Windows中,在文件打开时和文件关闭时都会显示 也就是说,Windows中的安全性是一个高度复杂的主题,因此您应该描述您试图实现的目标。我认为您需要禁止其他应用程序读取您的文件,因此,在这种情况下,您必

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

如何在C++中实现这一点?

我正在使用

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

提前感谢。

C++不提供文件锁定或文件安全功能,因此您必须依赖平台API。 在Windows中,在文件打开时和文件关闭时都会显示


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

< P>我不相信这可以使用标准的C或C++或直接与文件*对象。说到Windows有LockFile和UnlockFile API,您可以在什么平台上使用fcntl在Posix系统上实现同样的功能?为什么要这样做?这个问题背后真正的问题是什么?要真正做到这一点,唯一的办法就是加密文件内容,并将密钥留给自己,这也是一个充满风险的主题pitfalls@Lightness在windows平台中,将该细节添加到您的问题中,请允许我将LockFileEx与MFC的CFile?@user369287一起使用,是的,但您确定要进行这种锁定吗?此链接表示,如果进程终止时锁定了文件的一部分,或关闭了具有未完成锁定的文件,则操作系统将解锁这些锁定。@user369287我认为您不需要锁定。锁仅用于打开的把手。使用CryptProtectData或更高级的访问控制。基本上,您需要忘记来自linux的任何内容。此链接表示,如果进程终止时锁定了文件的一部分,或者关闭了具有未锁定的文件,则操作系统将解锁这些锁定。