C 中是否有一个无法更改的时间戳?(Internet独立)

Is there a function in C++ that can get timestamps which cannot be changed? (internet independent)

本文关键字:时间戳 Internet 独立 是否 有一个      更新时间:2023-10-16

我正在寻找一个可以在独立的C 应用程序中实现的函数,以从用户的计算机中收集时间戳,而他们无法通过修改系统时间来更改。目标是执行年度订阅。

该应用程序必须能够在国际上(因此没有标准化的时区(和跨平台(因此Windows,iOS,Android等(运行,而这里的独特挑战来自需要此功能,而不管用户是否曾经在下载应用程序之前连接到互联网。

C 标准库中的功能将是首选。有人知道这是否仅在C 中可能发生,还是Windows,iOS,Android等功能。提供此功能的库?

我程序的用户受过高度教育,并在不使用应用程序延长本应用程序寿命的情况下更改系统时间/关闭系统。

谢谢

C 库中没有此类设施,也没有我知道的任何库中。实际上,您无法完全做您想要的事情:如果用户关闭计算机并断开电池连接的实时时钟,则 都可以告诉他们是否已将电源关闭了五个分钟或十年。

我能想到的是Posix"单调时钟"。至少可以保证它永远不会比以前返回的时间更早(至少没有中间启动( - 但是没有什么可以阻止用户在VM中运行您的应用程序并在关闭时停止时钟应用,只有在他们再次启动时才重新启动。(这意味着他们实际使用您的应用程序获得了24*365小时的实际使用 - 这可能会在很多年内分布。(

实际上,如果您无法连接到真理的外部来源,则没有什么可以阻止用户将VM重置为刚刚安装应用程序时所处的状态。

您将不得不告诉您的经理,这是无法完成的。