创建应用程序可以编辑但用户不能编辑的文件

时间:2015-05-26 22:08:55

标签: c++ file-io stdio

我正在制作一个得分的比赛,并希望保存高分。我想将分数保存在程序可以访问的文件中(当然),但分数不应该由用户编辑(可能是只读文件)。只读文件的问题是,它显然是只读的,所以我不能写高分。 有没有办法创建一个可由应用程序编辑但不能由用户编辑的文件,或者我是否必须以某种方式加密文件?

注意:我更喜欢C(stdio.h)文件编写方法。

2 个答案:

答案 0 :(得分:2)

即使加密也不会停止通过应用程序以外的其他方式编辑文件。

我可以建议一个选项是简单地以二进制格式存储数据吗?然后,您可以保存实施加密的复杂性,但仍然可以防止意外编辑文件。

您还可以让您的应用程序将文件设置为所有人只读,然后仅在使用时使其可写。同样,这不会阻止其他人更改这些权限,但它会阻止意外编辑。

答案 1 :(得分:1)

在类Unix系统上有一种既定的方法可以实现这一点,但我不知道你是如何在其他平台上完成的。我们的想法是为高分文件提供一个特殊组的组ID,仅用于此目的,通常简称为games。游戏本身是setgid games,因此普通用户可以运行游戏,游戏可以编辑高分文件,但用户无法直接写入高分文件。

关于Unix和&amp ;;的更多细节Linux:https://unix.stackexchange.com/a/59059/14308