创建应用程序可以编辑但用户不能编辑的文件
Create file that the application can edit but the user cannot
我正在制作一款得分游戏,并希望保存高分。我希望将分数保存在程序可以访问的文件中(当然),但是用户不应该编辑分数(可能是只读文件)。只读文件的问题是,很明显,它是只读的,所以我不能把高分写进去。是否有办法创建一个文件,可以由应用程序编辑,但不能由用户,或者我必须以某种方式加密文件?
注:我更喜欢C (stdio.h
)写文件的方法
即使加密也无法阻止应用程序以外的程序对文件的编辑。
我可以建议一个选项是简单地将数据存储为二进制格式吗?这样就省去了实现加密的复杂性,但仍然可以防止对文件的意外编辑。
您还可以让应用程序将文件设置为所有人只读,然后使其仅在使用它时可写。同样,这不会阻止其他人更改这些权限,但它会防止意外编辑。
在类unix系统上有一种既定的方法来实现这一点,但我不知道您如何在其他平台上做到这一点。我们的想法是为高分文件提供一个特殊组的组ID,通常简称为games
。然后将游戏本身设置为setgid games
,以便普通用户可以运行游戏,游戏可以编辑高分文件,但用户不能直接写入高分文件。
Unix &Linux: https://unix.stackexchange.com/a/59059/14308
相关文章:
- C++我的数学有什么问题,为什么我的代码不能正确循环
- 为什么在没有显式默认构造函数的情况下,将另一个结构封装在联合中作为成员的结构不能编译
- 为什么我的for循环不能正确获取argv
- 不能在初始值设定项列表中将非常量表达式从类型 'int' 缩小到'unsigned long long'
- 为什么我不能在 FOR LOOP 中使用 i/10,C++?
- 为什么我不能在不创建字符串变量的情况下使用函数的字符串输出
- 为什么模板类中的对象不能返回值
- 为什么我不能在一个类的不同行中声明和定义成员变量?
- 为什么我不能在 C++ 中的特定函数重载中调用同一函数的任何其他重载?
- ld:bind_at_load和-bitcode_bundle(Xcode设置ENABLE_bitcode=YES)不能
- 数组长度,为什么从命令行获取时不能使用它?
- Windows/Cygwin - 不能使用 pybind11 - 犯错误
- 为什么我不能使用 EGL 创建无头 OpenGl 上下文?
- 递归模板化函数不能分配给具有常量限定类型"const tt &"的变量"state"
- 为什么我不能将一个对象push_back到属于另一个类的对象向量中?
- 为什么我不能将 rand() 与数组的大小一起使用?
- 为什么虚函数不能是静态的和全局的?
- 我自己的C++框架(类似MFC),我可以创建子窗口,但不能在WM_create时创建编辑框
- 我的C++ Unity 插件在编辑器中运行一次,但不能运行两次
- 创建应用程序可以编辑但用户不能编辑的文件