C++ 当您通过属性将文件设置为只读时,您的程序是否可以直接写入该文件?

C++ 当您通过属性将文件设置为只读时,您的程序是否可以直接写入该文件?,c++,windows,file,readonly,C++,Windows,File,Readonly,我想知道,如果将文件设置为只读,这样用户就不会弄乱它们,是否会禁止我的程序通过流媒体向它们写入信息。如果以只读方式打开文件,则无法向其写入信息 如果您希望打开一个可以写入但其他人无法写入的文件,那么在Windows中您需要查找。是。如果文件是只读的,则它是只读的。为什么不取消只读位的设置、写入文件并重置它呢?写入文件时获得的锁定应防止用户在应用程序写入文件时对其进行修改。然而,IMHO,整个练习是毫无意义的,因为只需点击4次就可以使文件可写,因此用户可以随时更改文件。我要做的是对文件进行md5或

我想知道,如果将文件设置为只读,这样用户就不会弄乱它们,是否会禁止我的程序通过流媒体向它们写入信息。

如果以只读方式打开文件,则无法向其写入信息


如果您希望打开一个可以写入但其他人无法写入的文件,那么在Windows中您需要查找。

是。如果文件是只读的,则它是只读的。为什么不取消只读位的设置、写入文件并重置它呢?写入文件时获得的锁定应防止用户在应用程序写入文件时对其进行修改。然而,IMHO,整个练习是毫无意义的,因为只需点击4次就可以使文件可写,因此用户可以随时更改文件。我要做的是对文件进行md5或sha1散列,将其存储在注册表中,并检查应用程序启动时是否发生了更改。

据我所知,这也会阻止您的程序工作。但是,你可以试着阅读Windows下的文件锁。当然,他/她可以。但是,如果您为散列选择一个好的salt,用户将很难为文件生成一个可接受的散列。当然,用户必须通过在调试器或类似程序中检查程序来获取salt,这是一个完全不同的蠕虫罐:。您的意思是ACL-访问控制列表在这里毫无意义,即使程序是以不同的用户身份运行的。在这种情况下,用户将需要凭据以其他用户的身份运行程序,因此,任何可由程序写入的文件也将由用户写入。